Я работаю над текстовой RPG, и я просто закручивался, проверяя, как бы я сделал систему XP. Я пытался это сделать, когда XP игрока больше или равен требуемому XP, затем он вычитает их и выравнивает игрока. Я не могу понять, что я сделал неправильно. (Проблема у меня в том, что PlayerXP
идет прямо мимо нужной XP)Почему логика не меняет мою ценность?
HTML
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='style.css'/>
<script src='script.js'></script>
</head>
<body>
<script>
setInterval(function() {
Player.Stats.XP++;
document.getElementById('PlayerLevel').innerHTML = Player.Stats.Level;
document.getElementById('PlayerXP').innerHTML = Player.Stats.XP
document.getElementById('PlayerNeededXP').innerHTML = Player.Stats.NeededXP;
}, 1000);
</script>
<p>Level: <span id='PlayerLevel'></span></p>
<p>Experience: <span id='PlayerXP'></span> - <span id='PlayerNeededXP'></span></p>
</body>
</html>
Javascript
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++;
}
Где в интервале является ли утверждение проверяется? – AtheistP3ace
Вам нужно отредактировать этот заголовок (сколько людей начнет с этого пути) плюс я бы рекомендовал размещать «Нет фреймворков» в нижней части вашего вопроса, поэтому не пытайтесь захватить его с помощью несвязанного кода. – John
Как указано в предыдущем комментарии, вы делаете 'if (Player.Stats.XP> = Player.Stats.NeededXP)' ровно один раз, а затем никогда больше не делаете этого. Вы должны запускать эту логику каждый раз, когда вы меняете XP. – apsillers