我目前正在做一个学校项目,我正在创建一个横向滚动游戏。我正处于需要碰撞检测的阶段。当我的角色精灵与邪恶的角色精灵相交时,我希望它的可见性设置为 false。
Rectangle d = character.getCharRec();
for (EvilCharacter eChar1 : eChar) {
EvilCharacter m = (EvilCharacter) eChar1;
Rectangle wolfRec = m.getEvilCharRec();
if (d.intersects(wolfRec)) {
System.out.println("WASTED");
character.setAlive(false);
gameOver = true;
}
}
不幸的是,上面的代码不起作用(当角色精灵与邪恶角色精灵相交时,什么也没有发生),但奇怪的是,下面的代码会起作用(当岩石精灵与邪恶角色精灵相交时,两个精灵的可见性都设置为 false)。如果有人能够提供帮助,将不胜感激。
ArrayList rocks = character.getRocks();
for (Object rock : rocks) {
Rock t = (Rock) rock;
Rectangle t1 = t.getRockRec();
for (EvilCharacter eChar1 : eChar) {
EvilCharacter m = (EvilCharacter) eChar1;
Rectangle wolfRec = m.getEvilCharRec();
if (t1.intersects(wolfRec) && m.Living()) {
t.setVisible(false);
m.setDead(false);
score = score + 10;
}
}
}
(为简单的编码道歉,我们在学校不会过多地研究复杂或高效的编码......)