Estoy haciendo la pantalla GameOver de mi juego y me encontré con un problema. Si aparece la pantalla de GameOver y luego, si mueve el mouse, vuelve al juego debido al mouseX.
¿Cómo puedo hacer que el mouseX ya no reaccione a partir de este momento?
Código:
int score = 0; float x_2 = 300; float y_0 = 250; float y_2 = 650; int distanz = 0; int currentXValue = 0; int savedXValue = currentXValue; PImage LilaAuto, GruenAuto, SchwarzAuto, LilaAuto_Main; void setup() { size(450,700); LilaAuto =loadImage("https://raw.githubusercontent.com/Tf187/Slot-Game-Processing/main/LilaAuto.png"); LilaAuto_Main =loadImage("https://raw.githubusercontent.com/Tf187/Slot-Game-Processing/main/LilaAuto.png"); } void draw() { background(204); image(LilaAuto,50,y_0, 100,100); y_0--; if(y_0<1) { y_0= 650; } fill(204); image(LilaAuto_Main,mouseX,y_2, 100,100); //Auto vom Spieler y_2--; if(y_2<1) { y_2= 650; } image(LilaAuto,x_2,y_0, 100,100); y_0--; fill(1); textSize(25); text("Score:", 10,25); text(score,75,25); float d= dist(mouseX,y_0,x_2,y_2); //Messung der Distanz if(d < 100) { score = score+1; } if(d < 60) { gameOver(); } } void gameOver() { score = 0; background(120); textAlign(CENTER); text("GameOver", 250,250); }desde ya agradezco las respuestas
Una forma de hacerlo es usando noLoop() . De esa manera, draw() no se ejecutará, lo cual no es necesario, porque la pantalla no cambia.
void gameOver() { score = 0; background(120); textAlign(CENTER); text("GameOver", 250,250); noLoop(); } Si luego desea comenzar a repetir nuevamente (porque el usuario reinició el juego, por ejemplo), puede llamar a la función loop() (por ejemplo, en un keyPressed() ), lo que hará que draw() se ejecute nuevamente como de costumbre. Esto podría ser algo como esto:
void keyPressed() { if(key == 'R' || key == 'r') { loop(); } }