我有和陣列在平鋪地圖上創建幾把劍,當我踏上它們時,它們需要被刪除,但是當我踩到它們時,遊戲崩潰。從陣列中除去東西但遊戲崩潰
在java.util.ArrayList中的$ Itr.checkForComodification(來源不明) 在java.util.ArrayList中的$ Itr.next(來源不明)
我的代碼:
我猜循環正在尋找對於即使被刪除的對象?
private List<Sword> swords = new ArrayList<Sword>();
我創建它們一次:
public GameRender(GameWorld world, int gameHeight) {
for (int i = 0; i<100 ; i++) {
swords.add(new Sword());
}
當我踩在上面:
for (Sword sword : swords) {
if(playery+7>=sword.position.y && playery+7<=sword.position.y+tilesize
&& playerx+7>=sword.position.x &&playerx+7<=sword.position.x+tilesize) {
sword.pickMe();
swords.remove(sword);
}
}
有其他環路渲染():
for (Sword sword : swords) {
sword.createMe();
}
我不認爲你需要看劍類。如果你真的把它放在這裏。我如何解決它,所以我沒有得到錯誤?
'ConcurrentModificationException'因爲你」重新使用增強型for循環,因此隱式地使用迭代器。迭代時,您無法修改正在迭代的列表。 – EpicPandaForce 2014-10-27 14:49:48
對不起,我真的不明白。我對英文編碼不太瞭解。你能用代碼告訴我它是如何工作的嗎? – 2014-10-27 14:54:14
我同時發佈了答案:p – EpicPandaForce 2014-10-27 14:55:06