2012-11-30 41 views
3

我使用XNA開發移動遊戲的輕敲姿勢之間的延遲,並有開啓和關閉開關時拍了拍這改變了狀態。我的問題是,它從一次點擊迅速變化多次。我如何解決這個問題?如何創建在XNA上WP7

回答

1

添加先前值變量來檢查按鈕的最後狀態下,如果它的到當前然後執行所需要的代碼 ButtonState先前=狀態

if(currentstate != prev) 
{ 
dothis 
} 
+0

我試着拖延遊戲的更新頻率,沒有運氣。如果當前狀態與以前的狀態必須是爲了打開這個不會,因爲從30 fps的是WP7有其變化多次打開開關後退 – user1865560

+0

停止用戶切換不同的。(你可以問你用戶是非常迅速的用自己點擊:對回報的笑話;)你需要爲已經在執行它正在執行存儲該停止你的代碼的狀態的一些方法 – Sayse

2

商店中的時間在遊戲中開關不同是最後一次使用和計算的時間跨度過去

if(buttonPressed && (Datetime.Now - timeLastInGameSwitchActivated).Milliseconds > 1000) 
{ 
    ToggleIngameSwitch(); 
    timeLastInGameSwitchActivated = Datetime.Now; 
} 
0

我用這個簡單的技術來處理'延遲'的東西。

float elapsed = (float)gameTime.ElapsedGameTime.Milliseconds; 
timeCounter += elapsed; 

if (timeCounter > yourMinimumDelayTime) 
{ 
    //your code here 
    timeCounter = 0;      
}