我正在写一个简单的倾斜游戏。让一个球朝您倾斜手机的方向在屏幕上滚动。
所以我下载了一个关于如何获取传感器数据的示例,并且效果很好(我使用旋转矩阵来避免欧拉角问题)。但后来我试图把它放到一个更大的应用程序中,但我在让它工作时遇到了一些麻烦。
我的第一个想法是在单独的线程中运行倾斜传感器,但我的类:public class TiltSensor extends Thread implements SensorEventListener 无法正常工作。我得到一轮值然后它停止。
你将如何实现这个应用程序?
我不想阻塞 UI 线程,所以我想我需要一个单独的线程(GameHandler)来运行游戏,然后我调用 runOnUithread 并从那里使视图无效。我还将电路板表示与视图分开,因此我将屏幕表示为矩阵,然后视图将使用该矩阵来了解屏幕的外观。但我不确定实现 TiltSensor 的最佳方式是什么。它应该与 GameHandler 在单独的线程中运行还是在同一个线程中运行?如何确保 SensorManager 实际调用 GameHandler 线程中的 onSensorChanged?