1

私はかなり長い間、スプライト キット ゲームを構築してきました。つい最近、ジャイロ/チルト機能を追加しました。を使ってCMMotionManager、驚くほど簡単に番号にアクセスできました。acceleration.xただし、値の保存方法の結果として私の問題が発生します。

ご覧のとおり、私のゲームの仕組みでは、ゲームが開始されると、携帯電話は現在の持ち方に合わせてすばやく調整され、acceleration.x 値の変化に応答します (携帯電話を横向きに保持すると、これはただし、スマートフォンを平らに置くと 1.0 になり、まっすぐに傾けると 0.0 になり、それを超えると、これらの値をループバックします。したがって、誰かが直立して座っていて、携帯電話が 0.1 に調整されていて、携帯電話を 0.2 下に傾けた場合、結果は期待どおりにはなりません。

これに対抗する簡単な方法はありますか?

4

1 に答える 1

2

なぜ独自のシステムを作ろうとしているのですか?加速度計の値を直接使用するべきではありません。

CMAttitudeデバイスの向きに関するすべての情報を含むと呼ばれるクラスがあります。

この向きは、加速度計データから生で取得されるのではなく、加速度計、ジャイロスコープ、および磁力計の組み合わせを使用して、デバイスの現在の姿勢を計算します。

これからrollpitchとのyaw値を取得して、それらを自分で計算する代わりに使用できます。

CMAttitude のクラス ドキュメント。

于 2014-10-01T15:00:24.440 に答える