在我正在制作的游戏中,我想让僵尸无法穿过对方或玩家。
我不想让僵尸在撞到对方时停下一会儿或朝另一个方向移动,因为这看起来很奇怪,我希望僵尸始终跟随玩家。我当时的想法是跟踪僵尸之前的 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 语句中使用什么来使精灵不会相互通过。