Не лучший заголовок, но мне нужна помощь / объяснение, почему мой массив 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
с индексом i
должен быть установлен равным false
, в результате чего в if
заявлении не будет отображаться этот зомби. Однако проблема, с которой я борюсь, заключается в том, что когда мой бегун бьет любого зомби, они все исчезают. Это или for
-петл, который вызывает это или логика? Любой совет поможет, спасибо!