Estoy siguiendo este tutorial sobre cómo hacer un juego de lucha en lienzo html usando javascript, pero me gustaría cambiar algunas cosas, solo hay una parte que no puedo entender, y es cómo congelar a los jugadores cuando el temporizador llega a cero. . ¿Alguien tiene alguna idea?
let timer = 10 let timerId function decreaseTimer(){ if(timer > 0) { timerId = setTimeout(decreaseTimer, 1000) timer-- document.querySelector('#timer').innerHTML = timer } if(timer === 0){ determineWinner({player, enemy, timerId}) // freeze player } }El movimiento se define como player.velocity.x/y respectivamente
También usando keydown como este:
window.addEventListener ('keydown', (event) => { switch (event.key) { case 'd': keys.d.pressed = true player.lastKey = 'd' break case 'a': keys.a.pressed = true player.lastKey = 'a' break case 'w': keys.w.pressed = true player.velocity.y = -10 break case ' ': player.attack() break case 'ArrowRight': keys.ArrowRight.pressed = true enemy.lastKey = 'ArrowRight' break case 'ArrowLeft': keys.ArrowLeft.pressed = true enemy.lastKey = 'ArrowLeft' break case 'ArrowUp': enemy.velocity.y = -10 break case 'Enter': enemy.attack() } }) window.addEventListener ('keyup', (event) => { switch (event.key) { case 'd': keys.d.pressed = false break case 'a': keys.a.pressed = false break case 'w': keys.w.pressed = false break case 'ArrowRight': keys.ArrowRight.pressed = false break case 'ArrowLeft': keys.ArrowLeft.pressed = false break case 'ArrowUp': keys.ArrowUp.pressed = false break } })Hay varias formas de 'congelar al jugador'. Algunos de ellos son mejores dependiendo de cómo pauses/juegues el juego.
timer > 0