Por alguna razón, addEventListener funciona tanto cuando debería funcionar como cuando no debería funcionar. Creé un juego en el que si el jugador no ha perdido, juega, pero solo cuando pierde, puede hacer clic en la pantalla para volver a intentarlo. En el navegador, cuando se abre el juego o se actualiza el navegador, todo funciona bien. Sin embargo, después de la primera pérdida, cualquier clic hace que el juego se reinicie desde el principio. ¿Qué estoy haciendo mal?
function main() { setTimeout(function everyFrame() { clearCanvas(); //Run if the game isn't over if (!isGameOver()) { game_over = false; //Code for the game screen } //Run if the game is over else if (isGameOver()) { game_over = true; //Code for the lose screen //Reset the game when the user clicks on the lose screen if (game_over) { game_over = false; myCanvas.addEventListener("click", restartGame); } } main(); changingDir = false; }, 100); }