private ArrayList<GameObject> objects;
private ArrayList<GameObject> remove;
private static ArrayList<GameObject> battleObjects;
private Player player;
private static int gameState;
public Game() {
gameState = OVERWORLD;
objects = new ArrayList<GameObject>();
remove = new ArrayList<GameObject>();
battleObjects = new ArrayList<GameObject>();
player = new Player(Display.getWidth() / 2 - player.SIZE / 2, Display.getHeight() / 2 - player.SIZE / 2);
objects.add(player);
objects.add(new Circle(32, 32, player));
objects.add(new Imp(300, 100, player));
}
public void getInput() {
player.getInput();
}
public void update() {
if (gameState == BATTLE) {
for (GameObject i : battleObjects) { //**Error happening here**
if (!i.isRemoved())
i.update();
else
remove.add(i);
}
}
else {
for (GameObject i : objects) {
if (!i.isRemoved())
i.update();
else
remove.add(i);
}
}
for (GameObject i : remove)
battleObjects.remove(i);
}
Its not a list removal problem because I'm using another list to remove objects later in code not in the same for each loop. I'm not quite sure why this has happened. I have checked other threads and it doesn't seem to help my situation.