我有一个游戏,其中设备的方向会影响游戏的状态.用户必须在横向、纵向和反向横向方向之间快速切换.到目前为止,我一直在通过以下方式注册游戏以获取定向通知:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
但它太慢了——在旋转手机和实际发出通知之间似乎有大约一秒钟的延迟.我需要一种方法来即时检测设备方向的变化.我try 过使用陀螺仪,但对它还不够熟悉,不知道它是否是我正在寻找的解决方案.
我有一个游戏,其中设备的方向会影响游戏的状态.用户必须在横向、纵向和反向横向方向之间快速切换.到目前为止,我一直在通过以下方式注册游戏以获取定向通知:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
但它太慢了——在旋转手机和实际发出通知之间似乎有大约一秒钟的延迟.我需要一种方法来即时检测设备方向的变化.我try 过使用陀螺仪,但对它还不够熟悉,不知道它是否是我正在寻找的解决方案.
你所说的delay实际上是一个过滤器,可以防止错误(不需要的)方向改变通知.
对于instant个设备方向变化的识别,你只需要自己监控加速计.
加速计测量所有三个轴的加速度(包括重力),所以在计算实际方向时不会有任何问题.
以下是一些开始使用加速计的代码:
How to make an iPhone App – Part 5: The Accelerometer
这个不错的博客涵盖了数学部分: