我的任务是在Greenfoot中创建Java游戏。我想收集5个硬币,出现一个门,进入该门,进入下一个级别。到目前为止,我已经做到了。我认为此if / else语句存在问题:
if (coinsCollected == 5 && levelCounter == 0) {
getWorld().addObject(new door_temp(), 157, 162);
levelCounter += 1;
coinsCollected = 0;
secondLevel();
}
if (coinsCollected == 5 && levelCounter == 1) {
getWorld().addObject(new door_temp(), 961, 170);
levelCounter += 1;
coinsCollected = 0;
thirdLevel();
}
由于某些原因,即使我在2级并且碰到门,第一个语句也会被执行。我不明白为什么会这样,因为我每次都会将levelCounter加1。
感谢任何可以提供帮助的人;)
最佳答案
您的语句实际上不是if / else,因此按您的说法,当您在0级触摸门时,它将执行两个部分(假设secondLevel()返回)。
我怀疑问题是在级别1的世界类中将levelCounter声明为实例变量,但是当您移至级别2时,该世界类的实例变量再次为0。但这取决于您如何实现级别以及以上代码位于哪个类中。需要更多代码才能确定问题所在。