如何每50次体验而不是每次增加我的整数?

时间:2018-04-16 20:52:07

标签: java for-loop

我正在编写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

我该怎么做?

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除法计算等级并更改它。