2012-05-09 6 views
0

基本的なサーフェイスビューのシングルスレッドエンジンを使用して、アンドロイドでGalagaタイプのゲームを作ろうとしています。私の問題はかなり単純です。Gameviewクラスでは、キャンバス上で起こっているタッチイベントを読み取るonTouchメソッドを定義しています。左ボタンが置かれている場所(または右ボタン)にタッチされた場合は、ボタンが押されている限り、宇宙船は左右に移動するはずです。Androidサーフェイスビュー - 左または右のオンスクリーンボタンが押されている限り、スターシップを移動します。

ボタンエリアをタッチすると、私の船の更新方法は1回だけ呼び出され、左右に1回だけ移動し、ボタンをもう一度触れて移動する必要があります。ボタンの領域がタッチされている限り、船を左または右に連続的に移動させる方法はありますか?

ありがとうございます。

答えて

1

あなたの移動ロジックとonTouchロジックを混在させないでください。 onTouchでは、フラグを 'touched'に設定することができます。そして、通常のゲーム更新ループの間に、タッチされた場合に船を移動することができます。その後、onTouchReleasedで 'touched'フラグを解除します。

+0

どういうわけか、タッチがキャンバスから解放されたときにMotionEvent.ACTION_UPが検出されません。それに対する特別な理由は何ですか? – pslayer89

+0

確かにドキュメントを読む必要があるでしょうが、ACTION_DOWNのonTouchから適切な値を返さないと(覚えていない)、あなたは気にしないと思いますそのタッチには触れず、それ以上タッチイベントをそのビューにディスパッチしません。 – Tim

+0

ありがとうございます。あなたの助けに感謝します。私はそれについて読むでしょう。 – pslayer89

関連する問題