陀螺仪不在Cocos2D环境中工作

时间:2012-06-20 15:42:04

标签: iphone cocos2d-iphone gyroscope

我有一个非常奇怪的问题。我有一个建立在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)]];

并运行应用程序,陀螺再次工作。但奇怪的是,当我取消注释相同的线并再次运行应用程序时,陀螺仍然有效。是什么给了什么?

1 个答案:

答案 0 :(得分:0)

只是预感...... motionManager是保留财产吗?

因为如果没有,MotionManager将被自动释放:

self.motionManager = [[[CMMotionManager alloc] init] autorelease];