Estoy tratando de hacer tres configuraciones de dificultad para un "juego" que estoy usando para experimentar y aprender JavaScript.
Lo intenté configurando una variable y tres entradas clave que la valoran en 1, 2 o 3. Vinculando cada configuración de "dificultad" a una declaración condicional sobre un valor de la variable antes mencionada. Las teclas configuran con éxito la variable, pero no afectan el juego de la manera que esperaba.
Sin embargo, si después de configurar la variable en un valor, reemplazo "var gameMode = 0" con "var gameMode", se abrirá ese nivel de dificultad. ¿Cómo podría rectificar esto?
Esto es lo que he hecho hasta ahora en el menú:
var gameMode = 0; if (gameMode === 0) { draw = function() { background(255, 255, 255); fill(0, 0, 0); text("Mover Game", 160, 200); text(gameMode, 160, 220); keyPressed = function() { if (keyCode === 112) { gameMode = 1; } if (keyCode === 113) { gameMode = 2; } if (keyCode === 114) { gameMode = 3; } }; }; }Su código es muy limitado, pero al mirar el código,
Está configurando var gameMode = 0; al principio y dentro de la función keyPressed , solo está verificando si se presionó la tecla apropiada y simplemente asignando el valor a gameMode . Tienes que volver a ejecutar el juego con el modo de juego recién asignado.
Mi sugerencia es usar dos funciones. Uno para ejecutar el juego y otro para lidiar con la pulsación de tecla e iniciar el juego.
function runMyGame(gameMode = 0){ // defaults the gameMode to 0 so it will start the game in 0 mode initially // here comes your game codes } // adding keypress listener document.addEventListener("keypress", myKeyPressFunction); // function which fires on key press function myKeyPressFunction(){ if (keyCode === 112) { gameMode = 1; runMyGame(gameMode); } if (keyCode === 113) { gameMode = 2; runMyGame(gameMode); } if (keyCode === 114) { gameMode = 3; runMyGame(gameMode); } }