2012-01-13 15 views
1

私はちょっと私の思考とここにこだわっています。私は達成したいものの写真を持っています。私はそれを説明する最善の方法だと思います。水平発射軌跡移動

enter image description here

赤い点は、開始位置です。私は彼らが地面で同じスポットを打ちたいと思っていますが、最初から放物線で動いています。悲しいことに、この仕事をするには数学のオタクではない。パスは常に同じままであることが重要です。私は単純な物理(重力)Box2Dでこれを達成できるかどうかは分かりません。 ヒントありがとう!

EDIT:これは、オブジェクトに同じy速度を与えるが、xスピードが異なることによって達成できると考えられます。/


I`veは、いくつかの数学の公式を試してみましたが、私はこれは私がそれを望むように仕事を得るカント:しかし、これはちょっと難しいcoded..stillいくつかの実用的な答えを探しているだろう/を。私はいけない(0.5 * Gは*のT^2)

+1

haha​​、あなたのアートワークを愛して;) – davogotland

+0

によって、あなたの説明はまた、ボールの速度が低いほど速くなければならないことを意味します。 – davogotland

+0

いいえ、私は彼らが出発地の位置に応じて、それらのスポットに行くために時間がかかることを望みます。私は彼らが地面にぶつかったときに、この高さに戻ることを望んでいますが、湾曲した道にあります。私のイメージはそれほど大したものではありません。 – puelo

答えて

0

-

X = V トン COS(アルファ) Y =(V トン SIN(アルファ))、これらを使用し

私自身の質問に答えることが許されているかどうかを知ってください。

私はちょうどあなたが今使っている解決策を知らせたいと思います。その最適ではないが、私はそれが動作すると思います:

私はdeltaTimeを保存するためにTime.classを実装しました。私の敵のクラスでは、私は運動のためにこれを得た:

distance = 100; 
    vY = targetTime*gravity*0.5f; 
    vX = distance/targetTime; 

と更新方法で:

 x += vX * Time.deltaTime; 
     y -= vY * Time.deltaTime; 

     vY -= gravity; 
     if(y >= 280) 
     vY = -vY; 

ので、地面を打った後、私はただのy速度を好転させます。これは、私の場合に特に効果的です。重力がしばらくしてから蹴り戻され、敵を地面に戻すからです。 それはまだハードコードが、私はこれを行うよりもよく分かりません。

関連する問題