Iphone 无响应加速度计数据 我一直在用OpenGL ES 2编写一个C++游戏引擎。然而,在使用加速度计时,我得到了奇怪的结果

Iphone 无响应加速度计数据 我一直在用OpenGL ES 2编写一个C++游戏引擎。然而,在使用加速度计时,我得到了奇怪的结果,iphone,ios,touch,accelerometer,Iphone,Ios,Touch,Accelerometer,我有一个角色,它通过加速计的输入在2D世界中移动。最初,当游戏开始时,移动将延迟10秒。延迟的意思是,如果你倾斜手机使角色向右移动,直到0.5秒,角色才会向右移动。我通过调用以下代码解决了此问题: UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer]; accel.updateInterval = 1.0f/60.0f; accel.delegate = self; 在调用此代码后2秒,而不是在同一时间: displayL

我有一个角色,它通过加速计的输入在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次以下,但不知何故会失去同步


谢谢。

我已通过从使用UIAccelerator切换到CMMotionManager解决了所有加速度计问题。我仍然不确定问题的原因,但从CMMotionManager获取加速度计数据似乎解决了任何问题