私が作成したスプライトがそれぞれと衝突するとき(私はすでに衝突を把握しています)、衝突する前にあった最後のxとyの位置にテレポートして、それぞれを通過しないようにする必要があります他の。このコードを使用しようとしました。
double x, y, x2, y2;
if(!r1.intersects(r2)){
x = z.getX();
y = z.getY();
x2 = z2.getX();
y2 = z2.getY();
}
if(r1.intersects(r2)){
z.setX(x);
z.setY(y);
z2.setX(x2);
z2.setY(y2);
}
しかし、すべてのスプライトが互いの中にあるため、機能しません。私もこれを使ってみました。
if(r1.intersects(r2)){
z.setX(z.getX() - 1);
z.setY(z.getY() - 1);
z2.setX(z2.getX() + 1);
z2.setY(z2.getY() + 1);
}
そのコードは、スプライトが互いに通り抜けることができないようにしますが、最初は互いに衝突するスプライトが多いため、スポーンする最初のスプライトが後のスプライトよりもはるかに高速になるようにします。