我使用開關作爲我的XNA遊戲的狀態管理器。交換機是主要更新方法的一部分,所以它每幀都運行。有時候我需要設置一個計時器值,並且每個方法調用只能設置一次。有多種方法設置每個案例的計時器,所以它不能使用當前和以前的狀態編號來檢查是否可以覆蓋以前的時間。如何在循環中只運行一次方法?
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方法是好的,但我不想用附加代碼混亂開關)
你可以添加完整的開關代碼,並解釋更多關於它 – andy
@Anandkumar什麼是不清楚的開關?我已經給出了一個在問題中切換的例子,每種情況大致就像你在那裏看到的一樣,只有檢查,方法和參數是不同的。 – user1306322
它是每個方法調用,每幀? IE每幀一次? – Alan