2012-05-09 24 views
0

我試圖在Android的使用基本surfaceview單線程引擎Galaga遊戲類型的遊戲。我的問題很簡單,在擴展的Gameview類中,我定義了讀取觸摸事件的onTouch方法。如果屏幕被觸摸,其中左按鈕被放置(或右按鈕)的飛船假定右只要按下按鈕以移動左/。的Android surfaceview - 只要將作爲飛船向左或向右屏幕上的按鈕被按下

但是,當按鈕區域被觸摸時,我的船的更新方法僅調用一次,並將其移動到左邊或右邊只有一次,按鈕,必須以移動再次觸摸進一步爲。只要觸摸按鈕區域,是否有辦法使船舶左右移動?

在此先感謝。

回答

1

不要與onTouch邏輯搭配你的舉動邏輯。在onTouch中,您只需設置一個「觸摸」的標誌,然後在常規遊戲更新循環中,如果觸摸屬實,則可以移動該船。然後取消onTouchReleased中的「已觸摸」標誌。

+0

不知何故,MotionEvent.ACTION_UP沒有得到當觸摸從畫布上公佈檢測。有什麼特別的原因? – pslayer89

+0

你可能必須閱讀文檔,可以肯定,但我認爲,如果你不回從onTouch上ACTION_DOWN(真或假的我記不清了)正確的價值,那麼它假定您不關心觸摸,並且不會向該視圖分派更多觸摸事件。 – Tim

+0

哦,我明白了。非常感謝你的幫助。我會讀一讀。 – pslayer89

相關問題