2011-07-29 13 views
2

私は比較的新しいBox2Dです。これまでBox2Dを使用したことがある人なら誰でも簡単に答えられるはずです。Box2Dコンタクトリスナーとフィルターとジョイントのクイック質問

  1. 私のbeginContactコールバックメソッドでは、新しいジョイントを作成して自分の世界に追加しています。しかし、私がこれを行うと、ランタイムエラーが発生します。これは、これらのコールバックメソッドで新しいオブジェクトを作成して世界に追加することが許可されていないためですか?

  2. ジョイントを作成するときに、実行時エラーを回避するためにアンカーポイントが必要な特定の場所がありますか?現時点では、すべての接触点の座標を平均し、アンカーとして使用しています。なぜなら、物体が衝突する点で一緒に溶接されるためです。正しい軌道にいるのですか?思考?コメント?

+1

ハハハ、節度のあるものはすべて良いかもしれない – Olshansk

+0

優れたスレッド++ – mKorbel

答えて

2

ワールドがシミュレーション状態であるため、beginContactメソッドでジョイントを作成することはできません。いくつかの配列やその他の構造体に、例えばStepメソッドb2Worldのメソッドを実行して、ワールド関連のアクションを実行するために必要なすべてのアクション(たとえばジョイントの作成)を行う必要があります。

多くの溶接継ぎ手が必要な場合は、複雑な構造を作成するときに問題が発生します。シミュレーションはうまくいかないでしょう。衝突したボディの1つにフィクスチャを作成し、もう一方のボディを削除する方がよいでしょう。