0

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

代码:

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

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

1 回答 1

2

左右都使用acceleration.x

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

向上/向下和向后/向前相同。

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

通过使用 fabsf,您正在消除运动的负面影响。

你需要类似...

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

或其他东西。

于 2012-11-18T12:09:33.617 回答