Ad esempio, ho una classe di gioco e ne tiene una int
che tiene traccia delle vite del giocatore. Ho un condizionale
if ( mLives < 1 ) {
// Do some work.
}
Tuttavia, questa condizione continua a funzionare e il lavoro viene eseguito ripetutamente. Ad esempio, voglio impostare un timer per uscire dal gioco in 5 secondi. Attualmente, continuerà a impostarlo su 5 secondi ogni fotogramma e il gioco non finisce mai.
Questo è solo un esempio e ho lo stesso problema in diverse aree del mio gioco. Voglio verificare qualche condizione e quindi fare qualcosa una volta e una sola volta, quindi non controllare o ripetere il codice nell'istruzione if. Alcune possibili soluzioni che vengono in mente sono avere un bool
per ogni condizione e impostare il bool
momento in cui la condizione si attiva. Tuttavia, in pratica, ciò diventa molto complicato da gestire bools
, poiché devono essere archiviati come campi di classe o staticamente all'interno del metodo stesso.
Qual è la soluzione adeguata a questo (non per il mio esempio, ma per il dominio problematico)? Come lo faresti in un gioco?