XNA ゲームの状態マネージャーとしてスイッチを使用しています。スイッチはメインの更新メソッドの一部であるため、フレームごとに実行されます。タイマー値を設定する必要がある場合がありますが、メソッド呼び出しごとに 1 回だけ設定する必要があります。ケースごとにタイマーを設定する方法は複数あるため、現在および以前の状態番号を使用して、以前の時間を上書きしてもよいかどうかを確認することはできません。
case "state 34": {
SetTime(theTime); // should run only once
// other things
if (TheTimeisRight(time)) // runs every call
{
SetTime(theTime); // should run only once
if (TheTimeisRight(time))
{ /* some methods */ }
}
break; }
どうすればこれを機能させることができますか、またはスイッチの外に出ずにこれを行うためのより良い方法はありますか? (SetTime メソッドの変更は問題ありませんが、追加のコードでスイッチを混乱させたくありません)