Iphone 陀螺仪在Cocos2D环境下不工作
我有一个很奇怪的问题。我有一个基于cocos2D库的AR应用程序。最近,当我第一次启动当天的xcode时,陀螺仪不工作,即偏航和横摇被测量为0,无论设备如何定向。它应该根据我在代码中执行的检查工作:Iphone 陀螺仪在Cocos2D环境下不工作,iphone,cocos2d-iphone,gyroscope,Iphone,Cocos2d Iphone,Gyroscope,我有一个很奇怪的问题。我有一个基于cocos2D库的AR应用程序。最近,当我第一次启动当天的xcode时,陀螺仪不工作,即偏航和横摇被测量为0,无论设备如何定向。它应该根据我在代码中执行的检查工作: // Initialize Gyro self.motionManager = [[[CMMotionManager alloc] init] autorelease]; motionManager.deviceMotionUpdateInterval = (1.0/60.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)]];
运行应用程序,陀螺仪再次工作。但奇怪的是,当我取消对同一行的注释并再次运行应用程序时,陀螺仪仍然工作。什么原因?只是一种预感,
motionManager
是一种保留财产吗
因为如果不是,motionManager将自动释放:
self.motionManager = [[[CMMotionManager alloc] init] autorelease];
是的,它被保留了下来,但我最终还是把它改成了一个类对象,而不是一个属性(比如苹果的公园示例项目)。这让我快发疯了。在退出xcode之后,它又发生了。