私は何らかのアルカノイドをやっていて、私は立ち往生しています。私がやる方法は、JFrame、JPanel、Timerです。だから私は何をすべきか、各タイマーの更新が このArrayListからの衝突とオブジェクトの削除のゲームチェック
public class Controller implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
ball.move();
desk.move();
deskCollision();
squareCollision();
repaint();
}
}
である私は、正方形のArrayListを作成し、私はそれらを印刷しました。正方形とボールとの衝突を確認すると、それは機能します。だから、ボールがボールに当たってボールの方向を変えるときに、特定の四角形を取り除きたい。まず、私はこれのようなループなしでそれを試しました。
if(ListOfSquares.get(24).getBounds2D().intersects(ball.getBounds2D())){
ball.dy = 1;
ball.dx = -1;
ListOfSquares.remove(24);
}
これは同様に機能します。しかし、すべての四角形を通って常に特定の四角形を取り除くループを作りたいので、私は迷っています。スレッドの例外「AWT-EventQueueの-0」java.util.ConcurrentModificationExceptionが - - あなたの助けを
for(Square square : ListOfSquares){
int index = ListOfSquares.indexOf(square);
if (ball.getBounds2D().intersects(square.getBounds2D())) {
if(ball.dx == -1 && ball.dy == -1){
ball.dy = 1;
ball.dx = -1;
ListOfSquares.remove(index);
}
//etc...
}
}
おかげで私はそれがバグで終わる このようにそれを行ったが、しています。
あなたがそれを –