我有兩個類。屏幕和按鈕。避免在屏幕轉換過程中按下多個按鈕XNA WP7
我遊戲的所有不同屏幕都繼承了Screen類。
然後按鈕被添加到屏幕類,並在屏幕的更新功能中更新(按鈕的更新功能)。
這裏是我的Button的更新代碼。
foreach (TouchLocation touch in TouchPanel.GetState())
{
if (touch.State == TouchLocationState.Pressed)
{
Point point = new Point((int)touch.Position.X, (int)touch.Position.Y);
if (rectangle.Contains(point))
{
pressed = true;
color = Color.Red;
}
else
{
pressed = false;
color = Color.White;
}
break;
}
}
現在是問題所在。
如果我把線 如果(touch.State == TouchLocationState.Pressed) 那麼只有第一個按鈕可以點擊。我也嘗試使用TryGetPreviousLocation(),導致沒有按鈕被點擊。
如果我刪除上面提到的if語句,那麼代碼適用於所有按鈕,但在屏幕轉換期間會出現多個按鈕按下。
我的意思是說這個。假設我有兩個屏幕A和B.屏幕A和B分別在完全相同的位置上有兩個按鈕P和Q.在第二種情況下, 如果按下P按鈕,則屏幕切換到B並且按鈕Q也被按下,而手指未被擡起。
這發生得非常快,因此無法控制它。我想知道如何在屏幕轉換期間只允許一次印刷。如果不擡起手指並再次觸摸屏幕,播放器應該無法按下下一個屏幕上的按鈕。
如前所述。我正在調用當前屏幕更新方法中所有按鈕的更新方法。
也許你可以嘗試檢測'TouchLocationState.Released'而不是'TouchLocationState.Pressed'? –