0

ユーザーを表す SKSpriteNode があり、ユーザーが歩くとノードが同じ方向に移動すると、このノードがユーザーの動きに合わせて移動したいと思います。

開始位置はビューの中心であり、CMMotionManager (iOS 7) の rotationRate、userAcceleration、および重力でこれを機能させることは可能だと思いますが、間違っているのか、これらの値をどのように操作すればよいのかわかりません.

誰かが私を助けてくれれば幸いです。

ありがとう。

4

1 に答える 1

0

今、私はやります

if ([self.motionManager isDeviceMotionAvailable] == YES) {
            [self.motionManager startDeviceMotionUpdatesToQueue:self.queueMotion withHandler:^(CMDeviceMotion *motion, NSError *error) {
                self.xpos = motion.userAcceleration.x * motion.gravity.x * motion.rotationRate.x;
                self.ypos = motion.userAcceleration.y * motion.gravity.y * motion.rotationRate.y;

                [self performSelectorOnMainThread:@selector(updatePosition:) withObject:nil waitUntilDone:YES];
            }];
        }

次に、これらの x 座標と y 座標を SKSpriteNode の位置に追加し、SKSpriteNode をこの最終位置に移動します。私が得ているのは、歩いている間は SKSpriteNode が動かないということですが、激しく加速すると動きますが、一定の速度で歩いていると動きません。

于 2014-06-17T20:24:58.953 に答える