首页 > 解决方案 > 碰撞检测似乎不起作用

问题描述

我目前正在做一个学校项目,我正在创建一个横向滚动游戏。我正处于需要碰撞检测的阶段。当我的角色精灵与邪恶的角色精灵相交时,我希望它的可见性设置为 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;
            }
        }
    }

(为简单的编码道歉,我们在学校不会过多地研究复杂或高效的编码......)

标签: javacollision-detectionnetbeans-8side-scroller

解决方案


推荐阅读