1

開始点と終了点、およびXフレームを設定して、ゲームオブジェクトの回転を実行しようとしています。次に、開始角度と終了角度を補間して実行します。

それはうまく機能しますが、私はオプションとして可能な限り短いルートを実行しようとしています(「最長のルートを実行する」とは対照的です)。ほとんどの場合は機能しますが、回転が360を超えるか0を下回る場合、それを検出して数値を変更する方法がわかりません。(たとえば、270から90までの最短ルートを使用する場合、最短ルートは360/0を超えるため、使用されないため、270を-45にして90に補間する必要があります)。私は説明がひどく、それを切り上げるのにネイティブの英語ではないので、私が持っているものの擬似コードを使用します。

 thing.start_angle = 180
 thing.end_angle = 90
 thing.angle = interpolate(thing.start_angle, thing.end_angle, position)

私はこの方法が好きです(「ifangle> max_angle then angle-1」の詳細な時間制御のために)が、角度が回転するかどうかを検出する方法の「ルール」を見つけることができません...どうすれば見つけることができますか回転が0未満または360を超える場合、それに応じて動作しますか?

4

1 に答える 1

1

次の場合、角度は折り返されます

things.end_angle --thing.start_angle>=180または<-180

(0から379の角度範囲を想定)。

于 2010-08-13T03:53:11.040 に答える