2011-02-04 14 views
0

加速度計を使用してプレーヤーのスプライトを移動したいと考えています。加速度計の検出とスプライトの回転

スプライトが直進して、プレイヤーが左に少し傾くと、スプライトが左に少し回転させ、そして右に同じはずです。

また、プレイヤーがデバイスをどれだけ傾けているかを検出し、それに応じてスプライトを回したいと考えています。

プレーヤーがデバイスをたくさん傾けた場合、スピードは45°ではなく90°回転して、ある方向に素早く傾けます。

これはどのように行いますか。任意の方向のデバイスの動きを検出し、小さな動きの場合はスプライトが小さく回転し、大きい回転の場合はスプライトがさらに回転するはずです。

私は少し実験して結果を得られません。時々、それは時計回りに上、右と下の動きには働くが、左の動きには作用しない。

これの背後にある数学は何ですか。デバイスの向きを検出して画面を回転させる方法の例があります。

これを正しく行うにはどうすればよいですか?

答えて

1

加速度計の場合のみ、検出機会が悪いです。このquestionをご覧ください。古いiPhoneバージョン(< 4)やiPadに依存する必要がない場合は、代わりにジャイロスコープを使用する必要があります。コアモーションAPIを取り、WWDC 2010のティーポットの例から始めよう - あなたはそれを見つけることができるhere

+1

関心のある人は、teapotサンプルコードをgithubからダウンロードできます:https://github.com/marshaun/CoreMotionTeapot私はできませんでしたどこからでもWWDC2010サイトからダウンロードリンクを見つけることができます。 –