我的碰撞方法有问题。问题是当游戏中有两个敌人时。它在循环中与一个敌人相交,并继续返回真以表示碰撞。但是如果这个数组 List 中有第二个敌人,它就不会与第二个对象发生碰撞,因此导致它返回 false 并且玩家继续行走。有什么想法可以让他在与任何敌人接触时停下来,而不是因为他没有与所有敌人接触而继续前进?谢谢,这里是代码。
public void checkCollision(){
ArrayList<Enemy> enemy = c.getEnemyList();
for ( int i = 0; i < enemy.size(); i++){
Enemy e = enemy.get(i);
if (!getBounds().intersects(e.getBounds())){
walk();
return;
}
if (getBounds().intersects(e.getBounds())){
if (e.getHP() <= 0){
c.removeEnemy(e);
walk();
return;
}
fight();
if (count == 25 || count == 65){
int dd = DCalc.calcDmg(atk, atkMAX);
e.dmg(dd);
}
}
}
}