Javascript 为什么不是';改变我工作价值观的逻辑是什么?
我正在做一个文本RPG,我只是在胡闹,测试我如何使用XP系统。我试着让玩家的经验值大于或等于所需的经验值,然后减去它们,升级玩家。我不知道我做错了什么。(我遇到的问题是,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
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);