不是最好的标题,但我需要帮助/解释为什么我的for-loop / boolean数组不能按照我想要的方式工作。
for (int i = 0; i < zombies.length; i++) {
displayZombies(panel, g, zombies);
if (zomCollision(runner, zombies, panel, g) == true)
eliminated[i] = true;
if (!eliminated[i])
displayZombies(panel, g, zombies);
}
基本上,我的代码是一个简单的游戏,用户控制一个点(跑步者),并且在游戏中产生了一定数量的僵尸。用户通过与游戏中的所有僵尸相交/碰撞而获胜,这些僵尸存储为僵尸阵列中的点。
displayZombies
做的是什么;它会创建僵尸并显示它们
zomCollision
会返回true。
zombies
是存储僵尸数量的点数组。
布尔数组eliminated
设置为false
(设置为僵尸数)。
当我的跑步者与其中一个僵尸相交时,索引eliminated
的{{1}}数组应设置为i
,从而导致false
- 语句不显示那个僵尸。然而,我正在努力解决的问题是,当我的跑步者击中任何僵尸时,他们都会消失。它是if
- 循环导致那个或逻辑吗?任何建议都会有所帮助,谢谢!