1

我已经构建 Sprite Kit 游戏已经有一段时间了。就在最近我一直在添加陀螺/倾斜功能。使用CMMotionManager,我能够轻松地访问这些数字。但是,我的问题是由于acceleration.x值的存储方式而出现的。

你看,我的游戏是这样运行的,当游戏开始时,手机会快速校准到当前的握持方式,然后我会响应Acceleration.x值的变化(横向握持手机,这相当于将屏幕朝向和远离您倾斜。)但是,将手机平放为 1.0,将其直接朝向您倾斜为 0.0,然后如果您超出这些值,它将循环返回这些值。因此,如果有人坐直,他们的手机校准为 0.1,而他们将手机向下倾斜 0.2,结果将不会是预期的。

有什么简单的方法可以抵消这种情况吗?

4

1 回答 1

2

你为什么要为此建立自己的系统?您不应该直接使用加速度计值。

有一个名为的类CMAttitude包含有关设备方向的所有信息。

这个方向不是从加速度计数据中获取的,而是使用加速度计、陀螺仪和磁力计的组合来计算设备的当前姿态。

然后,您可以从中获取roll,pitchyaw值并使用它们,而不必自己计算它们。

CMAttitude 的类文档。

于 2014-10-01T15:00:24.440 回答