3

このようなオブジェクトがあるとしましょう...

var objA = {
    x:0,
    y:0,
    speed:{x:0, y:0},
    angle:0,
    turnSpeed:8
}

...そして、ゲームの「ステップ」ごとに、座標(10、10)にあるobjBに向かって移動したいと考えています。ObjA はすでに移動中で、突然 objB の位置に移動する必要があります。turnTo()objAに、その に基づいて各ステップでそれを objB に向けることができる関数があるとしますturnSpeed。私は次のようなことができます...

objA.speed.x += Math.cos((90 - obj.angle) * Math.PI / 180);
objA.speed.y += -Math.sin((90 - obj.angle) * Math.PI / 180); 

...角度に基づいて objA を objB に向かって移動しますが、objA が既に移動している場合、objA の現在の速度が考慮されていないため、objB にヒットする可能性はほとんどありません。

objA が正確にヒットするように objB へのパスを計算するにはどうすればよいですか?

4

1 に答える 1

2

まず、私の Javascript ゲームの座標を見てみましょう - 角度に基づいて、いつ Sin Cos と Tan を使用しますか?

objB の x 座標と y 座標を知っており (一定のままだと思います)、JavaScript を使用して objA の x 座標と y 座標を取得できるため、単純な三角関数を使用して、objA から objB までの任意の点から三角形として問題を解決できます。

于 2012-09-08T04:08:13.300 に答える