iPhone加速度计方向

时间:2012-11-18 12:02:57

标签: iphone accelerometer direction

我正在开发一个应用程序,其中iPhone将在移动(剑)时播放不同的声音。 我想知道iPhone何时向左,向右,向上或向下移动(剑运动)。 我该如何实现呢? 我正在测试加速度计并编写了这段代码,但如果向左或向右移动它会返回相同的值。我怎么知道iPhone移动的方向?

代码:

- (void)accelerometer:(UIAccelerometer *)accelerometer
        didAccelerate:(UIAcceleration *)acceleration
{
    double const kThreshold = 1.0;

    if (fabsf(acceleration.x) > kThreshold) {
        NSLog(@"X+");
    }
}

1 个答案:

答案 0 :(得分:2)

左右两者都使用acceleration.x

我不确定哪一个是哪个是负x而另一个是正x。

相同的上/下和前后。

它们都使用相同的轴(x,y或z),但一个方向是正变化,另一个是负变化。

通过使用fabsf,你正在消除运动的消极方面。

你需要像...这样的东西。

if (acceleration.x > kThreshold) {
    NSLog(@"X+");
} else if (acceleration.x < kThreshold * -1) {
    NSLog(@"X-");
}

或其他东西。