碰撞代码不起作用

时间:2017-03-27 08:07:19

标签: java collision

我有这些怪物'当它们到达屏幕底部时不断创建和删除。它们左右移动,我想要它,以便当它们触摸时(或者如果它们在彼此的顶部被创建),其中一个会移开。

目前我在课堂上管理怪物:

public void update() {
    int i = 0;
    while(i < (Constants.NUMBER_ENEMIES-2)) {
        if (Rect.intersects(npcManager.getList().get(i).getRectangle(), npcManager.getList().get(i + 1).getRectangle()))
            npcManager.getList().get(i).setRectangle(200);
        i += 1;
    }
}

其中npcManager是一个实例,并且它列出了NPC的数组列表。我创建的setRectangle方法是:

public Rect setRectangle(int move) {
    rectangle.top += move;
    rectangle.bottom += move;
    return rectangle;
}

它应该将NPC向下移动200以使其不再发生碰撞。

我的问题是,这段代码有什么原因吗?目前,矩形只是通过彼此,代码没有效果。

1 个答案:

答案 0 :(得分:0)

通过查看敌人的数量 - 2(当此特定情况下的敌人数量为2时),while循环从未启动且代码未运行。