Na przykład mam klasę gier, która prowadzi int
śledzenie życia gracza. Mam warunkowe
if ( mLives < 1 ) {
// Do some work.
}
Jednak ten warunek trwa nadal i praca jest wykonywana wielokrotnie. Na przykład chcę ustawić minutnik, aby wyjść z gry za 5 sekund. Obecnie ustawia go na 5 sekund na każdą klatkę, a gra nigdy się nie kończy.
To tylko jeden przykład i mam ten sam problem w kilku obszarach mojej gry. Chcę sprawdzić jakiś warunek, a następnie zrobić coś raz i tylko raz, a następnie ponownie nie sprawdzać ani nie wykonywać kodu w instrukcji if. Niektóre z możliwych rozwiązań, które przychodzą na myśl, obejmują ustawienie bool
dla każdego warunku i ustawienie czasu bool
uruchomienia warunku. Jednak w praktyce robi się to bardzo nieładnie bools
, ponieważ muszą być przechowywane jako pola klasy lub statycznie w samej metodzie.
Jakie jest właściwe rozwiązanie tego problemu (nie dla mojego przykładu, ale dla domeny problemowej)? Jak byś to zrobił w grze?