私が作っているゲームでは、ゾンビがお互いやプレイヤーを通り抜けられないようにしたいと思っています。
ゾンビ同士がぶつかったときにゾンビがしばらく止まったり、別の方向に移動したりするのは奇妙に見えるので、ゾンビが常にプレイヤーに追従するようにしたいです。私が考えていたのは、以前にゾンビの x と y の位置を追跡し (これは既に行っています)、別のゾンビまたはプレイヤーと衝突すると、別のゾンビと衝突する前の最後の x と y の位置にテレポートすることでした。スプライト。
これは機能しますか?それを行うより良い方法はありますか?また、ゾンビが別のスプライトと衝突する前に、最新の x と y の位置を追跡するにはどうすればよいでしょうか?
私はすでにゾンビの衝突をチェックするコードを持っています
for(int i = 0; i < zombies.size(); i++){
Zombie z = (Zombie) zombies.get(i);
Rectangle r2 = z.getBounds();
for(int j = i + 1; j < zombies.size(); j++){
Zombie z2 = (Zombie) zombies.get(j);
Rectangle r1 = z2.getBounds();
if(r2.intersects(r1)){
//the code for stoping the sprites from going through each other should be here
}
}
}
スプライトが互いに通過しないようにするために、ifステートメントに何を入れるべきか疑問に思っています。