2011-12-25 5 views
4

私は、特定のオブジェクト(box2dボディとしてモデル化されている)が固定パスに従わなければならないゲームを作っています。パスの座標を指定して各dtのオブジェクトを前進させる方法がありますか?Box2dオブジェクトを所定の経路に従うようにする

おかげ

答えて

6

別のオプション:

1

あなたはキネマティックボディを使用する必要がありますが、あなたは手動でその位置を変更することはできません、あなたは正しく適用するためのダイナミクスとの衝突のためにその速度を変更する必要があります。

は、私は次のアルゴリズムを提案:

第一 - ボディは次のDT上でなければならないことをトラック上の位置を計算します。

2番目 - ボディがある位置から次の位置に向かうベクトルを作成します。

第3 - 標準化してください。

4rd - ボディが次のループでその位置にくるように必要なスピードを計算し、そのスピードをベクトルに乗算します。

5th - このベクトルを体の線速度に適用します。

注:4番目のステップを計算するのが簡単になるように、キネマティックボディにゼロドラッグがあることを確認してください。

私はこのようなことは一度もしませんでした。私はそれがこのようにできると思います。 はそれが役に立てば幸い:)

+0

チェックhiepndの答えを移動するには、マウスの関節の

  • 使用がsetTarget方法、そのあなたの体にマウスジョイントを取り付けはるかに簡単で、同じ結果を提供する必要があります:) –

  • +0

    ありがとう。私は似たようなことをした。私は次の位置を知っていたので、ステップ4のために体にsetTransformを使用しました。これらのメソッドの問題のみ:過渡状態を計算し、onUpdateで指定する必要があります。今度は、別の方法でbox2dが位置計算を引き継ぐかどうかを確認します。 – Nav

    関連する問題