0

私のゲームでは、弾丸が到達するまでに敵がいる場所にタワーを発射したいと考えています。

弾丸を曲げたくない、ユニットの移動速度と移動方向に基づいて推定された位置に直接発射したい

私の考えでは、敵が移動するたびに、敵の最後の位置から現在の位置を差し引いて、敵の方向を決定します。その方向が (1,1) であるとしましょう

その後、どのロジックを実行する必要があるのか​​ 100%確信が持てません。

弾丸が到達するときに敵がどれくらい離れているかを推定するために必要な時間を決定するために、タワーから敵までの距離を知る必要があると考えています。

私は本当にこれから始めるべきか分からないので、もし誰かが私がこの解決策をどのように扱うべきかについて私にいくつかの指針を与えることができれば.

4

2 に答える 2

0

等加速度直線運動の場合

x(t) = x0 + vx * t
y(t) = y0 + vy * t

ここでvxvyは座標軸上の速度の投影ですv。速度は、スカラー値が速度であり、進行方向の方向であるベクトルです。あなたの場合、方向ベクトルが正規化されている場合は、速度を掛けて速度を取得します。

開始位置はわかっています: (x0, y0)vx投影とのみが必要ですvywが x 軸と速度の間の角度である場合、

vx = v * cos(w)
vy = v * sin(w)

角度については、正規化された方向ベクトルを使用してatan2f、関数または cocos2d 関数ccpToAngle(それ自体を使用) を使用します。atan2f

于 2013-07-24T06:32:30.587 に答える