iphone - 无响应的加速度计数据

标签 iphone ios touch accelerometer

我一直在使用适用于iPhone的OpenGL ES 2.0编写c ++游戏引擎。但是,在使用加速度计时,我得到了奇怪的结果。

我有一个在加速度计输入下在2D世界中移动的角色。最初,当游戏开始时,运动会延迟10秒。延迟是指如果您倾斜手机将角色向右移动,直到0.5秒后角色才会向右移动。我通过调用以下代码解决了这个问题:

UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
accel.updateInterval = 1.0f/60.0f;
accel.delegate = self;

调用此代码后2秒钟,而不是同时调用:
displayLink = [self.window.screen displayLinkWithTarget:self selector:@selector(drawFrame)];
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

由于某种原因,这导致倾斜功能在启用后即可完美工作。

但是,如果您多次触摸屏幕以触发触摸开始和触摸结束功能,则倾斜将再次不同步,直到15秒钟左右才重新同步。

应该注意的是,帧速率从不降到60以下,并且加速度计方法似乎没有降到每秒更新60次以下,但不知何故不同步。

谢谢。

最佳答案

通过从使用UIAccelerometer切换到CMMotionManager,我已经解决了所有加速度计问题。我仍然不确定为什么导致此问题,但是从CMMotionManager获取加速度计数据似乎可以解决所有问题。

关于iphone - 无响应的加速度计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17758554/

相关文章:

ios - 该 bundle 无效。 Info.plist 文件丢失或无法解析。请检查它是否有嵌入的控制字符

iphone - 无法读取 Xcode 4.2 中的符号错误

ios - 找不到合并 @Published - Xcode11 Beta 5(11M382q)

iphone - iOS向前兼容或向后兼容

objective-c - 监听 iOS 应用中的所有触摸事件

ios - touchesBegan 方法的问题

ios - 如何将用户重定向到开发者iTunes帐户以查看他的其他应用

ios - 关闭 UIImagePickerController 也会使父级消失

selenium - 如何将 Selenium TouchActions 与 RemoteWebDriver 结合使用

iphone - CCParticle meteor cocos2d