在Spritekit中更改加速度计的中性位置

时间:2014-04-28 04:54:05

标签: ios sprite sprite-kit accelerometer core-motion

我在Spritekit中制作一个简单的游戏,我在屏幕上滚动一个球。现在它工作正常,球移动我想要的方式。我想改变它,以便中立位置是45度而不是平面。这是我现在的代码。

- (void)startMonitoringAcceleration {


if (_motionManager.accelerometerAvailable) {
    [_motionManager startAccelerometerUpdates];

}
}

- (void)moveBallFromMotionManager {

CMAccelerometerData* data = _motionManager.accelerometerData;
if (fabs(data.acceleration.x) > 0.05) {
    [_ball.physicsBody applyForce:CGVectorMake(25.0 * data.acceleration.y, -25.0 * data.acceleration.x)];
}
if (fabs(data.acceleration.y) > 0.05) {
    [_ball.physicsBody applyForce:CGVectorMake(25.0 * data.acceleration.y, -25.0 * data.acceleration.x)];
}


}

-(void)update:(CFTimeInterval)currentTime {    

    [self moveBallFromMotionManager];

}

我是新手,所以我真的不知道应该怎么做。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

为您的俯仰和翻滚创建基线。例如,在init方法(或任何您想要的时间)设置2个变量,其中包含俯仰和滚动的当前值。完成后,您可以将这些变量用作当前值的偏移量。

例如,音高偏移设置为0.3。如果当前的音高读数为0.45,则从当前读数中减去偏移量。