我有一个非常奇怪的问题。我有一个基于 cocos2D 库的 AR 应用程序。最近,当我当天第一次启动 xcode 时,陀螺仪不工作,即无论设备如何定向,偏航和横滚都被测量为 0。它应该根据我在代码中执行的检查工作:
// Initialize Gyro
self.motionManager = [[[CMMotionManager alloc] init] autorelease];
motionManager.deviceMotionUpdateInterval = (1.0/60.0);
if (motionManager.isDeviceMotionAvailable) {
NSLog(@"motion available");
[motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical];
}
在过去的几天里,我通过注释掉一些我不再使用的内容或更改与屏幕上的精灵动画相关的内容来解决了这个问题。奇怪的是我会让它在我剩下的编码会话中正常工作,关闭 xcode,第二天当我再次打开 xcode 和我的项目时,陀螺仪再次坏了。
有没有对 cocos2d 或陀螺仪有更多经验的人知道可能是什么原因造成的?
谢谢。
更新
我注释掉了这条线
[mySprite runAction:[CCMoveTo actionWithDuration:refreshRate position:ccp(newX, newY)]];
并运行应用程序,陀螺仪再次工作。奇怪的是,当我取消注释同一行并再次运行应用程序时,陀螺仪仍然工作。是什么赋予了?