Наприклад, у мене є Ігровий клас, і він зберігає int
те, що відстежує життя гравця. У мене умовна
if ( mLives < 1 ) {
// Do some work.
}
Однак ця умова продовжує стріляти, і робота виконується повторно. Наприклад, я хочу встановити таймер для виходу з гри за 5 секунд. Наразі він продовжує встановлювати його по 5 секунд на кожен кадр, і гра ніколи не закінчується.
Це лише один приклад, і у мене однакова проблема в декількох сферах моєї гри. Я хочу перевірити деякий стан, а потім зробити щось раз і лише один раз, а потім не перевіряти чи робити код у if-операції ще раз. Деякі можливі рішення, які спадають на думку, мають відповідність bool
для кожної умови і встановлюють, bool
коли стан спрацьовує. Однак на практиці це стає дуже безладним в обробці безлічі bools
, оскільки вони повинні зберігатися як поля класу, або статично в межах самого методу.
Яке правильне рішення для цього (не для мого прикладу, а для проблемної області)? Як би ти це зробив у грі?