#javascript #phaser-framework
Вопрос:
Я бы хотел перезапустить свою игру с помощью пробела, а не с помощью мыши. Я пробовал кое-что, но это не сработало, как:
this.restart.input.keyboard.on('keyup_SPACE', () => {
this.dino.setVelocityY(0);
this.dino.body.height = 92;
this.dino.body.offset.y = 0;
this.physics.resume();
this.obsticles.clear(true, true);
this.isGameRunning = true;
this.gameOverScreen.setAlpha(0);
this.anims.resumeAll();
})
Это то, что у меня есть:
this.restart.on('pointerdown', () => {
this.dino.setVelocityY(0);
this.dino.body.height = 92;
this.dino.body.offset.y = 0;
this.physics.resume();
this.obsticles.clear(true, true);
this.isGameRunning = true;
this.gameOverScreen.setAlpha(0);
this.anims.resumeAll();
})
this.restart = this.add.image(0, 80, 'restart').setInteractive();
this.gameOverScreen.add([
this.gameOverText, this.restart
])
Комментарии:
1. Есть ли у вас какие-либо переменные, определяющие, закончилась ли игра? Например, «это … это бег» ? Вы можете добавить условие внутри «прослушивателя пробелов», если игра все еще запущена, выполните действие прыжка, в противном случае запустите игру заново.
2. Да, я это сделал. Вот файл, в котором я его использую, но, похоже, я не могу в этом разобраться. codepen.io/Borsj/pen/YzZNQgq?editors=0010
3. В своем
" this.input.keyboard.on('keydown_SPACE', () => "
методе добавьте"!this.isGameRunning"
проверку в качестве первого условия, и если она больше не выполняется, перезапустите игру и установите"this.isGameRunning = true"
так же, как и в вашем"this.restart.on('pointerdown', () =>"
методе.4. Боже, на самом деле все было так просто. Наверное, я слишком долго пялился на свой экран. Спасибо, Стивен!
5. Без проблем, братан, рад, что мой ответ помог тебе!
Ответ №1:
Вы можете поймать keyup
событие, подобное этому (проверка keyCode
, соответствующая пробелу):
document.body.addEventListener("keyup", (e) => {
if(e.keyCode === 32) console.log("Spacebar pressed");
});
Вы можете перезапустить игру при нажатии клавиши пробела, это может выглядеть примерно так.
document.body.addEventListener("keyup", (e) => {
if(e.keyCode === 32) {
this.restart();
}
});