角度、行の長さ、開始点を指定しました。ここでオブジェクトを移動するために目標点を計算します。私は、この記事や他のいくつかを以下のよ:開始点、角度、長さを指定してターゲット点を計算する逆方向に移動する
cocos2d calculate destination point given start point, angle and distance
問題:第1回と第4象限のために、それは私に正しい角度を与えています。しかし、第2象限と第3象限については、正反対の方向に向いています。私は問題を理解することができませんでした。この画像は、それを明確にすることがあります。
緑の矢印は、私の意図した方向を示しているし、それが実際にどこに行く赤い矢印が表示されます。これまで
私のコード:それぞれの障害の場合には、赤と緑のベクトルが同じm
を持っていることを
float m = (targetPosition.y - initialPosition.y)/(targetPosition.x - initialPosition.x);
angle = atan (m) * 180/PI;
int lineLength = 200;
float radiansAngle = CC_DEGREES_TO_RADIANS(angle);
Vec2 endPoint;
endPoint.y = sinf(radiansAngle) * lineLength + initialPosition.y;
endPoint.x = cosf(radiansAngle) * lineLength + initialPosition.x;
ata2も動作していません。このfloatが好きでした。xDiff = targetPosition.x - initialPosition.x; float yDiff = targetPosition.y - targetPosition.y; return atan2(yDiff、xDiff)* 180/PI; – Itkrux
@ Nargis 'atan2'は動作します。自分の間違いをチェックし、あなたの言語で 'atan2'が返す範囲(0..2Piまたは-Pi..Pi)を考慮してください。 – MBo