我目前正在做一个学校项目,正在创建侧面滚动游戏。我正处在需要碰撞检测的阶段。我希望我的角色精灵与邪恶角色精灵相交时将其可见性设置为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;
}
}
}
(为简化编码而道歉,我们不会在学校中过多地讨论复杂或高效的编码...)