このようなオブジェクトがあるとしましょう...
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 へのパスを計算するにはどうすればよいですか?