所以我的问题是,当我使用 if 语句来确定我是否击中怪物并存活或击中怪物并死亡时,我遇到了一个奇怪的声音问题(它会非常快地重复击中的声音)。使用经典的马里奥逻辑,如果我降落在顶部,我会活着,否则我会死。在我添加了两个不同的 if 语句之前,我没有遇到任何问题。如果您需要更多信息,请告诉我。我认为我的问题是我如何使用 if 语句。
private void checkGhostCollisions() {
int len = ghosts.size();
for (int i = 0; i < len; i++) {
Ghost ghost = ghosts.get(i);
if (hero.position.y < ghost.position.y) {
if (OverlapTester.overlapRectangles(ghost.bounds, hero.bounds))
hero.hitGhost();
listener.hit();
} else {
if(hero.position.y > ghost.position.y)
if (OverlapTester.overlapRectangles(hero.bounds, ghost.bounds)) {
hero.hitGhostJump();
listener.jump();
break;
}
}
}
}