我正在编写RPG游戏;每次玩家获得50点经验(50XP,100,150,200等)时,他应该升级一级。
int level = 1;
int xp = 0;
//getters - setters
Player player = new Player();
player.fight(); //does something...
player.levelUp();
public void levelUp(){
if(this.getXp()>=50){
this.setLevel(this.getLevel() + 1);
}
}
这不起作用,因为它每次都会增加1级,但我只希望它在每50次XP(100,150,200等)后添加1
我该怎么做?
答案 0 :(得分:1)
您可能希望使用余数运算符%
来帮助您每50 xp点执行一次操作。请注意,对于可被50整除的级别值,getLevel() % 50
将返回0,例如50,100和150,因此这样的代码可能有效:
public void level() {
// MAX_XP is an int constant == 50
if (getXp() % MAX_XP == 0) {
setLevel(getLevel() + 1);
}
}
如果xp以大于1的增量变化,那么如果int除法结果发生变化,你可能想要根据int除法计算等级并更改它。