循环我的Java代码不会产生下一波吗?
所以我在做一个有一波又一波敌人的游戏。Wave类包含一个更新方法,该方法更新Wave类中包含的敌人数组列表中的所有敌人。Wave类还有一个名为beat的布尔值,它决定玩家是否击败了当前Wave。然而,我现在一直在尝试在球员击败第一个之后开始下一个浪潮。除了第一个,arraylist中的所有波都以其节拍变量为真开始。目前只有两波。我不知道这为什么不起作用。谢谢你的帮助
for(int i = 0; i < 1;i++)
{
if(!w.get(i).beat)
w.get(i).update(g2d);
else if(w.get(i).beat)
{
if(i-1 != -1)
{
if(w.get(i-1).beat && w.get(i).beat)
{
w.get(i).beat = false;
}
}
}
}
# 1 楼答案
在将当前波形的
beat
设置设置为false
后,循环将i
增加到下一个波形,并错过调用该情况下的update
方法。看起来您应该在设置beat = false
之后立即调用它的update
方法,或者按照如下相反的顺序执行if
测试:我不知道你为什么要把wave的
beat
状态初始化为true
,然后在轮到它的时候把它设置为false
。既然它们真的还没有被打败,为什么不直接初始化为false
# 2 楼答案
我不确定我是否理解你的代码,但我可以告诉你两件事。首先,循环永远不会循环,因为一旦索引为1,它就结束了,不会再次执行代码。其次
由于我所说的,他总是错的