0

私は本当に奇妙な問題を抱えています。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)]];

アプリを実行すると、ジャイロが再び機能しました。奇妙なのは、同じ行のコメントを外してアプリを再度実行したとき、ジャイロがまだ機能していたことです。何を与える?

4

1 に答える 1

0

ただの予感…motionManager保持プロパティですか?

そうでない場合、motionManagerは自動リリースされるためです。

self.motionManager = [[[CMMotionManager alloc] init] autorelease];
于 2012-06-20T18:39:26.003 に答える