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 に答える