public void DoUpdate(GameTime gameTime) { if (pending != GameMarioStatePending.None) { pending.Handle(game); pending = GameMarioStatePending.None; } else { Update(gameTime); } }
public static void Handle(this GameMarioStatePending pending, GameMario game) { switch (pending) { case GameMarioStatePending.GameOver: GameOver(game); break; case GameMarioStatePending.GameWin: GameWin(game); break; case GameMarioStatePending.Reset: Reset(); break; } }
public void TriggerReset() => pending |= GameMarioStatePending.Reset;
public void TriggerGameWin() => pending |= GameMarioStatePending.GameWin;
public void TriggerGameOver() => pending |= GameMarioStatePending.GameOver;