Например, у меня есть класс Game, и он хранит данные, int
которые отслеживают жизнь игрока. У меня условно
if ( mLives < 1 ) {
// Do some work.
}
Однако это условие продолжает работать, и работа выполняется повторно. Например, я хочу установить таймер для выхода из игры через 5 секунд. В настоящее время он будет устанавливать 5 секунд на каждый кадр, и игра никогда не заканчивается.
Это всего лишь один пример, и у меня одна и та же проблема в нескольких областях моей игры. Я хочу проверить какое-то условие и затем сделать что-то один раз и только один раз, а затем не проверять или делать код снова в операторе if. Некоторые возможные решения, которые приходят на ум, имеют bool
для каждого условия и устанавливают, bool
когда условие срабатывает. Однако на практике это приводит к большим ошибкам bools
, поскольку они должны храниться как поля класса или статически в самом методе.
Каково правильное решение этого (не для моего примера, но для проблемной области)? Как бы вы сделали это в игре?