0

これは、Bullet が画面幅よりも大きい位置に到達するたびに、破棄する必要があるというものです。これを試すと、ゲームがクラッシュします。

「bullet」は、i をオブジェクトとして含むクラスです。

「弾丸」は、すべてのオブジェクトを含む私の配列リストです。

編集: Iterator を試してみましたが、それでもクラッシュします。

編集:受け入れられた回答が役に立ちました。現在働いています。ありがとう!

public ArrayList<bullet> bullets = new ArrayList<bullet>();
public Iterator<bullet> it = bullets.iterator();

while (it.hasNext()) {
           bullet s = it.next();
           if(s.xPosition > screenWidth - 10) {
               it.remove();
           }
        }
4

1 に答える 1

2

リストを繰り返し処理している間は、リストから要素を削除することはできません。あなたがそれをするConcurrentModificationExceptionならば、あなたは得るでしょう。イテレータを使用して、イテレータから要素を削除する必要があります。

Iterator<Bullet> itr = bullets.iterator();
while(itr.hasNext()) {
    if(itr.next().xPosition > screenWidth - 10) {
        itr.remove(i);
    }
}
于 2013-02-11T13:50:12.640 に答える