我正在开发一个应用程序,其中iPhone将在移动(剑)时播放不同的声音。 我想知道iPhone何时向左,向右,向上或向下移动(剑运动)。 我该如何实现呢? 我正在测试加速度计并编写了这段代码,但如果向左或向右移动它会返回相同的值。我怎么知道iPhone移动的方向?
代码:
- (void)accelerometer:(UIAccelerometer *)accelerometer
didAccelerate:(UIAcceleration *)acceleration
{
double const kThreshold = 1.0;
if (fabsf(acceleration.x) > kThreshold) {
NSLog(@"X+");
}
}
答案 0 :(得分:2)
左右两者都使用acceleration.x
我不确定哪一个是哪个是负x而另一个是正x。
相同的上/下和前后。
它们都使用相同的轴(x,y或z),但一个方向是正变化,另一个是负变化。
通过使用fabsf,你正在消除运动的消极方面。
你需要像...这样的东西。
if (acceleration.x > kThreshold) {
NSLog(@"X+");
} else if (acceleration.x < kThreshold * -1) {
NSLog(@"X-");
}
或其他东西。