私は簡単な傾斜ゲームを書いています。端末を傾けた方向にボールを画面上で転がします。
そこで、センサー データを取得する方法の例をダウンロードしましたが、これは正常に機能します (オイラー角の問題を回避するために回転行列を使用しています)。しかし、それをより大きなアプリに入れようとしたところ、うまく動作しませんでした。
私の最初のアイデアは、傾斜センサーを別のスレッドで実行することでしたが、私のクラス: public class TiltSensor extends Thread implements SensorEventListener がうまく機能していません。1 ラウンドの値を取得すると、停止します。
このアプリをどのように実装しますか?
UI スレッドをブロックしたくないので、ゲームを実行するには別のスレッド (GameHandler) が必要だと考えてから、runOnUithread を呼び出して、そこからビューを無効にします。また、ボードの表現をビューから分離して、画面をマトリックスとして表現し、ビューはそのマトリックスを使用して画面がどのように見えるかを認識します。しかし、TiltSensor を実装する最善の方法がわかりません。別のスレッドで実行する必要がありますか、それとも GameHandler と同じスレッドで実行する必要がありますか? SensorManager が実際に GameHandler スレッドで onSensorChanged を呼び出していることを確認するにはどうすればよいですか?