My game is due tomorrow and im far from done so plz help
ArrayLists are making me so angry!!
I keep getting a nullpointer exception while using a iterator to go through an arrayList, but When i looked through my code, there was nothing I found that removes the element during iteration (besides the code that removes the current element after using it)
for(int row=0;row<4;row++)
{
if(row!=2)
{
currentIndex = row*level.getLevelWidth()+quix.getCol();
eIterator = iList[ currentIndex ].iterator();
while(eIterator.hasNext())
{
currentI = (Element)eIterator.next();
if(!( currentI.getBounds().intersects( quix.getBounds() )))
{
continue;
}
quix.itemTask( currentI.task() );
level.setGarbage( currentI.getIdRow(),currentI.getIdCol() );
eIterator.remove();
}
}
}
when i execute it tells me that currentI is null, but i never made it null
{
public void generateItem(int enemyIndex)
{
randnum = random.nextInt(60);
if(randnum>40)
{
int index = (Integer)blankIndex.get(0);
System.out.println(index);
int row = index/4;
int col = index%getLevelWidth();
elementsArray[row][col] = new Element("potion",enemyIndex/getLevelWidth(),enemyIndex%getLevelWidth(),row,col,applet,app);
itemList[enemyIndex].add(elementsArray[col][row]);
blankIndex.remove(0);
}
else if(randnum>35)
{
int index = (Integer)blankIndex.get(0);
int row = index/4;
int col = index%getLevelWidth();
elementsArray[row][col] = new Element("hbook",enemyIndex/getLevelWidth(),enemyIndex%getLevelWidth(),row,col,applet,app);
itemList[enemyIndex].add(elementsArray[col][row]);
blankIndex.remove(0);
}
else
{
int index = (Integer)blankIndex.get(0);
int row = index/4;
int col = index%getLevelWidth();
elementsArray[row][col] = new Element("money",enemyIndex/getLevelWidth(),enemyIndex%getLevelWidth(),row,col,applet,app);
itemList[enemyIndex].add(elementsArray[col][row]);
blankIndex.remove(0);
}
}
}
public void setGarbage(int row, int col)
{
//elementsArray[row][col] = null;
blankIndex.add(row*getLevelWidth()+col);
}