Мне жаль, что я не писал это для чего-то другого, кроме как вычитать из значения, но я не знаю. У меня есть игра, в которой астероиды приходят к игроку, и вы можете передвигаться. Если астероид попадает в игрока, он должен вычесть случайное количество (в пределах диапазона) из счета. Фактически, это как-то добавляет к счету вместо этого. Ниже приведен мой код:HTML5/Javascript: вычитание из значения
for(var i=0; i<asteroids.length; i++){
if(player.x<asteroids[i].x+asteroids[i].radius){
if(player.x>asteroids[i].x-asteroids[i].radius){
if(player.y<asteroids[i].y+asteroids[i].radius){
if(player.y>asteroids[i].y-asteroids[i].radius){
player.lives-=Math.floor(Math.random()*(900000-600000)-600000);
}
}
}
}
}
Операторы if проверяют, перекрывает ли игрок астероид. Я пробовал писать «player.lives - = whatever» и «player.lives = player.lives - whatever», и ни один из них не работает, и он просто добавлен в партитуру.
Кто-нибудь знает, что может быть причиной этого? Благодарю.
след значение player.lives. Моя лучшая догадка заключается в том, что она имеет отрицательное значение и, следовательно, когда вы делаете вычитание, она складывается! –
'Math.random() * (900000-600000) -600000' будет равно отрицательному числу. – tymeJV
Также вместо использования четырех условий 'if', попробуйте ' if (player.x <астероиды [i] .x + астероиды [i] .radius && player.x> астероиды [i] .x-астероиды [i]. radius && player.y астероиды [i] .y-asteroids [i] .radius) ' –