0

計画は、2点(文字とカーソル)間の傾きを計算し、それを水平に対する角度に変換し、その角度に応じて、カーソルを指しているように見えるように特定の文字スプライトに切り替えることでした(例:0〜30度、1つのスプライト。30〜60度、別のスプライト。60〜90度など)。その後私が遭遇した問題は、ある意味で斜面が互いに鏡像になっている可能性があるということでした。

(今では明らかなように見える)問題は、ポイントAにキャラクターがあり、ポイントBにカーソルがあると、キャラクターポイントBとポイントAにカーソルがあるのと同じ傾き/角度になることです。方向を知る方法がありませんでした。ポイントへ。

私の問題のイラスト

ここからどうしたらいいのか途方に暮れています。最も簡単な解決策は、プレーヤーの方向がこの方法(右向きか左向きか)ではなく、矢印キーを介して検出されないようにすることですが、最後の手段としてそれを保存しています。素早く照準を合わせると問題が発生します。

4

2 に答える 2

2
double deltaX = point1.x - point2.x;
double deltaY = point1.y - point2.y;
double angleInRadians = java.lang.Math.atan2(deltaX, deltaY);
double length = java.lang.Math.sqrt(deltaX * deltaX + deltaY * deltaY);
于 2012-11-02T20:52:34.757 に答える
1

これを解決するには、スロープとともにスプライト/カーソルの位置を使用できるはずです。

擬似コード:

if(slope is positive and cursor is to the right of sprite)
{
   sprite should face right (first quadrant, 0-90 degrees)
}
else if( slope is positive and cursor is to the left of sprite)
{
   sprite should face left (third quadrant, 180-270 degrees)
} 
//etc
于 2012-11-02T20:45:09.110 に答える