2011-10-25 4 views
0

私は3つのスプライトを持っていますが、すべて同じ角度になっていますので、私はちょうどアームスプライトと言います。 現在、アームスプライトの角度は1ポイント1(60,60ですが、これは関係ありません) と別のポイント2、プレイヤーの親指が押されたポイントに等しくなります。3スプライトの角度を変えて滑らかでリアルに見せてください

ccTime関数では、すべてを更新します。角度やもの。したがって、ユーザーが画面上のある場所に触れるたびに、角度が直ちに変更され、腕の角度はpoint1からpoint2までのベクトルに等しくなります。

角度の変更を完了するのに.016秒かかることはありません(ccTimeは1/60秒ごとに呼び出されます)。私が望むのは、新しいベクトルが現在のベクトルからどのくらい離れているかに応じて、角度が増減する速度がより速く/遅くなることです。基本的には、アームが特定の速度で上下させたい、おそらくベクトルに応じて少し加速することができます。

私はそれを動作させるために何度も試してみましたが、どこにも行きません。私を助けてください。回転は90度からまっすぐにほぼ180度まっすぐ下に行くことができます(ただし、cocos2dの角度は変更されていますので、ここに90を加えなければなりませんでした)。

これ以上の情報が必要な場合は、コメントを残しておいてください。

答えて

0

あなたの更新ループ上、その後destinationAngleとして新しい角度を設定する必要があります。

//Instead of checking for equality, you might want to check the angle is close enough, e.g. if they are withing 1 degree of each other e.g.(if (abs(destinationAngle - angle) < 1) 
if (angle != destinationAngle) 
{ 
    //move towards destination 
    angle += ((destinationAngle - angle)/10.0f); 
} 
関連する問題