Как мне временно ускорить мою змею, когда змея съела ускорение? - PullRequest
0 голосов
/ 04 августа 2020

Я хочу временно ускорить мою змею всякий раз, когда змея съела ускорение (синий цвет).

Приветствую, если есть какие-либо отзывы и изменения по этому поводу

if (ateFood) {
  this.food.active = false;
  this.game.score += 10;
  this.$score.innerText = this.game.score;
  this.soundEffects.score.play();
  this.snake.pop();
} else if (ateBoost) {
  this.boost.active = false;
  this.soundEffects.score.play();
  speed = 50;
  //stuck at here
  this.snake.pop();
} else {
  this.snake.pop();
}

Полный код можно посмотреть здесь

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

В операторе else if вы это сделали. скорость = 50 , что жестко запрограммировано, что делает вашу скорость c. Но в JavaScript, чтобы увеличить или уменьшить, вам нужно сделать скорость + = 50 , что означает скорость = скорость + 50 и отложить, которая может быть скорость - = 50 что означает скорость = скорость - 50 . Однако позже вы можете уменьшить скорость через несколько секунд.

После установки скорости на 50 установленный тайм-аут, который принимает два параметра, функцию и время, возвращает скорость на 10 в функции через 10000 мс, что составляет 10 секунд

0 голосов
/ 04 августа 2020

После того, как вы ускорите змейку с помощью speed = 50, который работает, вы можете setTimeout(function(){ speed = oldSpeed; }, millisecondsOfBoost); в следующей строке. Так что, если скорость по умолчанию равна 10, и вы хотите увеличить ее на 2 секунды, это будет setTimeout(function(){ speed = 10; }, 2000);

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...