我目前正在制作RPG游戏,你可以在杀死敌人后获得经验。这是相关的代码:
this.experience_current += experience;
while(this.experience_current >= EXPERIENCE_MAX);
{
System.out.println(this.experience_current >= EXPERIENCE_MAX);
levelUp();
this.experience_current -= EXPERIENCE_MAX;
}
这里发生的事情是,在敌人死亡时,这种方法被称为为玩家当前的经验总数增加经验。然后将该总数与升级经验进行比较,如果总数高于最大值,我们升级并将总数减少最多。它是一个循环,以确保大的经验值(如来自老板)可以使我们多次升级。
我遇到的问题是这个循环不应该在运行时运行。在杀死我的第一个敌人并获得3个经验值(最多100个)时,会调用此方法。条件不满足,但我们仍然进入while循环。 System.out.println(...)行正在打印" false"到控制台确认情况已经破裂,但是,我们还在这里。
我没有在这里进行任何类型的多进程编程,因此我无法想象总值会被更改为使循环条件正确的值。真的 - 我为什么不能进入循环而感到茫然。
答案 0 :(得分:4)
while
末尾有一个多余的分号。删除它,你的循环应该工作。