我正在写一个类似于breakout或pong的简单2D游戏,你可以通过向左和向右倾斜手机在屏幕底部移动一个栏。
我正在尝试使用Orientation传感器来实现这一运动,但是我遇到了一些问题。
在打印出方向传感器的值一段时间后,我决定在Z轴上旋转给了我想要的东西,如果我将屏幕保持水平并垂直于地板(x:0,y:0,z:90) Z左右旋转从90开始。所以值90-z可以用作“转向量”值。
然而,垂直于地板位置并不是很自然,人们更有可能将手机保持在Z轴大约45度,此时我所使用的所有这些值都完全搞乱了,转向很奇怪,人们不高兴。
我想我真正需要的是检测某些z轴的旋转,即使手机所在的XY平面不断变化。是否有一些聪明的方法可以用数学做到这一点?
编辑:刚刚找到了OrientationEventListener - 正是我需要的!