私が達成しようとしているのは、2D環境で別のスプライトに移動するスプライトです。私は基本的なMx = Ax - Bx契約から始めました。しかし、スプライトがターゲットに近づくほど、スピードが遅くなることに気付きました。だから、速度に基づいてパーセンテージ/比を作成しようとしましたが、各xとyは速度許容量のパーセンテージを得ましたが、それは非常に奇妙な動作をしており、MxとMyが正の場合にのみ働くようです。 コード抽出:基本的なC++エンジンで一貫した速度を使って速度を計算する
ballX = ball->GetX();
ballY = ball->GetY();
targX = target->GetX();
targY = target->GetY();
ballVx = (targX - ballX);
ballVy = (targY - ballY);
percentComp = (100/(ballVx + ballVy));
ballVx = (ballVx * percentComp)/10000;
ballVy = (ballVy * percentComp)/10000;
EDIT:/ 10000あなたはスプライトが一定の速度で移動すると仮定すると、あなたはこのように、XとYの位置の両方に線形フェードを行うことができますスプライトの動きに
balltaの長さを特定の数値に設定することができます。 –
"私は基本的な* Mx = Ax - Bx *の取引から始めましたが、スプライトのターゲットに近いほど速度が遅くなることに気付きました。あなたの入力や出力が最初に間違っていたようなサウンドあなたのミスを考慮して数式を調整しないで、デバッグする必要があります。 2番目の点にベクトルを見つけて、そのベクトルをデルタ時間でスケーリングして新しい位置を見つける必要があります。 –