我正在 iOS 上编写游戏,并尝试使用加速度计设置响应运动。所以当我在 iPhone 上开始游戏时,一切都很好,加速度计响应没有问题。但是当我停止游戏循环(暂停菜单),然后重新开始时,屏幕上的实体会跳到某个地方,然后几秒钟后又回到原位。我相信这是由于游戏循环和加速度计的增量之间的差异而发生的。所以我想知道有没有办法将 iPhone 上的加速度计设置为仅在游戏循环更新时更新值?
UIAccelerometer 的值是这样读取的(我只需要 x 轴)
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
accelerometValues[0] = acceleration.x * 0.1f + accelerometValues[0] * (1.0 - 0.1f);
}
加速度计设置如下
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:1.0 / 60.0];
[[UIAccelerometer sharedAccelerometer] setDelegate:currentScene];
游戏循环本身取自 Alex Diener GameLoop Tutorial的教程