敵->プレーヤーからのベクトルがある場合、基本的には、敵に適用してプレーヤーの位置にジャンプさせることができる変換があります。ベクトルの全長を「1」に設定するベクトルを正規化して「単位」に戻す必要がありますが、それでもプレーヤーの方向を指している場合は、この値に実際に必要な速度を掛けることができます敵をプレイヤーに向かって移動させることで敵を移動させるベクトルを取得します
人々はすでに答えているので、単位を取得するには、ベクトルの両方の成分の積を合計してから、平方根を取る必要があります。これは、ピタゴラスの定理と結びついています。例:
あなたがベクトルの成分を取る場合は言う
(2,2)
これは次のようになります。
2
^
|
|
--> 2
次に、原点(0,0)とベクトルの終点が交わる点の間に線を引きます-三角形が得られます...
2
^
/|
/ |
--> 2
この線はベクトルの大きさを表します。両方のコンポーネントの2乗の合計を取り、それをsqrtして、この線の長さを取得します。
2 * 2 + 2 * 2 = 8
sqrt(8) = 2.82
したがって、このベクトルの長さは2.82です。つまり、2と2の値は単一の単位ベクトルの2.82倍のサイズです。
「1」の長さまたは「単位」のコンポーネントを取得するには、ベクトルを正規化する必要があります。これを行うには、各コンポーネントを大きさで除算します。
2 / 2.82 = 0.70
これは正しいと思います-このベクトルの角度は45度です(2を超える2は完全な対角線である必要があります)ので、コサイン/サインはベクトルコンポーネントの水平または垂直の単位長さを提供するため、コサインまたはサインを使用して確認できます与えられた角度に対して
sin(45) or cos(45) = 0.70
スポット
これで、プレーヤーに対する角度が、次のコンポーネントを持つ1つの長さのベクトルを使用することがわかりました。
(0.7, 0.7)
敵を3ユニットプレイヤーに向かって移動させるには、コンポーネントに3を掛けるだけです。
0.7 * 3 = 2.1
それで
(2.1, 2.1)
この物理ステップで敵を3ユニットプレイヤーに向かって移動させます
これはまったく役に立ちますか?