Javascript 为什么不是';改变我工作价值观的逻辑是什么?

Javascript 为什么不是';改变我工作价值观的逻辑是什么?,javascript,html,Javascript,Html,我正在做一个文本RPG,我只是在胡闹,测试我如何使用XP系统。我试着让玩家的经验值大于或等于所需的经验值,然后减去它们,升级玩家。我不知道我做错了什么。(我遇到的问题是,PlayerXP直接超过了所需的XP) HTML 您必须在每次超时迭代时检查当前XP值: NeededEXP=[ 25, //1 50, //2 100, //3 200, //4 500, //5 1000, //6 1750, //7 3000, //8 5000, //9 10000 //10 ]; var-Player

我正在做一个文本RPG,我只是在胡闹,测试我如何使用XP系统。我试着让玩家的经验值大于或等于所需的经验值,然后减去它们,升级玩家。我不知道我做错了什么。(我遇到的问题是,
PlayerXP
直接超过了所需的XP)

HTML


您必须在每次超时迭代时检查当前XP值:

NeededEXP=[
25, //1
50, //2
100, //3
200, //4
500, //5
1000, //6
1750, //7
3000, //8
5000, //9
10000 //10
];
var-Player={};
Player.Stats={};
Player.Stats.Level=1;
Player.Stats.XP=0;
Player.Stats.NeededXP=needededexp[Player.Stats.Level];
setInterval(函数(){
Player.Stats.XP++;
如果(Player.Stats.XP>=Player.Stats.NeededXP){
Player.Stats.XP-=Player.Stats.NeededXP;
Player.Stats.Level++;
Player.Stats.NeededXP=needededexp[Player.Stats.Level];
}
document.getElementById('PlayerLevel')。innerHTML=Player.Stats.Level;
document.getElementById('PlayerXP')。innerHTML=Player.Stats.XP
document.getElementById('playernededxp')。innerHTML=Player.Stats.NeededXP;
}, 1000);
级别:

经验:-

在setInterval函数块中剪切并粘贴检查代码段,如下所示

setInterval(function() {
  Player.Stats.XP++;

  if(Player.Stats.XP >= Player.Stats.NeededXP) {
    Player.Stats.XP = Player.Stats.NeededXP - Player.Stats.XP;
    Player.Stats.Level++;
  }

  document.getElementById('PlayerLevel').innerHTML = Player.Stats.Level;
  document.getElementById('PlayerXP').innerHTML = Player.Stats.XP
  document.getElementById('PlayerNeededXP').innerHTML = Player.Stats.NeededXP;
}, 1000);

如果语句在间隔中的什么位置被选中?你需要编辑标题(有多少人以这种方式开始),另外我建议在你问题的底部贴上“没有框架”,这样No就会试图用不相关的代码劫持它。正如前面的评论所暗示的,如果(Player.Stats.XP>=Player.Stats.needxp)
只执行一次
,然后再也不要这样做了。每次更改XP时,您都需要运行该逻辑。哦,我在这方面不是最棒的,但非常感谢您:D
NeededEXP = [
  /**/,
  25,    //1
  50,    //2
  100,   //3
  200,   //4
  500,   //5
  1000,  //6
  1750,  //7
  3000,  //8
  5000,  //9
  10000  //10

];

var Player = new Object();

Player.Stats = new Object();
Player.Stats.Level = 1;
Player.Stats.XP = 0;
Player.Stats.NeededXP = NeededEXP[Player.Stats.Level];

if(Player.Stats.XP >= Player.Stats.NeededXP) {
  Player.Stats.XP = Player.Stats.NeededXP - Player.Stats.XP;
  Player.Stats.Level++;
}
setInterval(function() {
  Player.Stats.XP++;

  if(Player.Stats.XP >= Player.Stats.NeededXP) {
    Player.Stats.XP = Player.Stats.NeededXP - Player.Stats.XP;
    Player.Stats.Level++;
  }

  document.getElementById('PlayerLevel').innerHTML = Player.Stats.Level;
  document.getElementById('PlayerXP').innerHTML = Player.Stats.XP
  document.getElementById('PlayerNeededXP').innerHTML = Player.Stats.NeededXP;
}, 1000);