iOS アプリに Core Motion マネージャーがあります。
motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 1.0 / 60.0;
if ([motionManager isDeviceMotionAvailable]) {
[motionManager startDeviceMotionUpdates];
}
update メソッド (私は cocos3d を使用していますが、それは問題ではありません) で、私はこれを持っています:
-(void) updateBeforeTransform:(CC3NodeUpdatingVisitor *)visitor
{
if (motionManager.deviceMotionActive)
{
CMDeviceMotion *deviceMotion = motionManager.deviceMotion;
CMAttitude *attitude = deviceMotion.attitude;
NSLog(@"%f, %f, %f", attitude.yaw, attitude.pitch, attitude.roll);
}
}
デバイスをテーブルに置き、ヨー、ピッチ、ロールの値を監視し始めました。ヨーは常に変化しています。数分で約 10 度変化しており、私のアプリでは絶対に許容できません。その変更の理由は何ですか?どうすればそれを回避できますか? 地球の自転のせいかと思い始めましたが、速度が速すぎます:)
前もって感謝します!