趣味として、これが可能かどうかを学ぶために、Android 用のシンプルな一人称シューティング ゲームを実装しようとしています。残念ながら、マウス イベントの処理で行き詰まりました。
システム フレームワークによって生成されたオブジェクトonGenericMotion()
を処理する -Listenerが既にあります。MotionEvent
問題は、MotionEvent
マウスによって生成されたオブジェクトには絶対座標が含まれているだけであり、カーソルが画面の端または隅に到達すると「スタック」する傾向があることです。だから私は相対的なマウス座標を考えています。MotionEvent
相対的な動きを提供できる機能は見つかりませんでしたが、
adb shell su -- getevent -lt /dev/input/event3
そして、その出力を調べると、カーソルが画面の隅で動かなくなった場合でも、カーソルを動かそうとすると、カーネルが個別の相対モーション イベントを生成することが明らかになりました。したがって、私のシューターに su アクセスがあるとすれば、相対的な動きを得ることができます。
そしてここで質問です。Google で少し調べてみると、多くのファーストパーソン シューティング ゲームでは、典型的なマウスの動きは
- 相対マウス座標を使用し、
- マウス カーソルを画面の中央に再配置します。
したがって、質問は実際には 2 つあります。
- Androidでマウスカーソルを画面の中央に再配置することはできますか? と
- そうでない場合、相対的なマウスの動きの情報だけを使用して、典型的な「一人称シューティングゲーム」のマウスの動きを実現できますか?