0

回転している円の衝突点にオブジェクトをアタッチしようとしていますが、プレーヤーはプレーヤーの一定のポイントにアタッチする必要があります。たとえば、プレーヤーが前後に移動していて、ユーザーが画面に触れてプレーヤーがジャンプすると、プレーヤーが円に衝突すると、その足が円に取り付けられ、円と一緒に回転し続ける必要があります。だから私はcocos2dbox2dでこの種の衝突ジョイントを作る方法を知りたいですか?

4

1 に答える 1

0

ユーザーと円の間の衝突が検出されたら、コールバック関数 (おそらく CCCallFuncND) を呼び出すアクションを実行できます。コールバック関数は、両方の本体へのポインターを渡して (NSValue valueWithPointer でラップ)、それらの間に任意のジョイントを作成することができます。これを行うには、最初に目的のタイプの b2JointDef をインスタンス化し、そのジョイントの bodyA と bodyB を「くっつけたい」2 つのボディとして定義し、次に b2World->CreateJoint() を呼び出します。

プレーヤーの体を円の体の特定のポイントに接続するという点では、anchorPoint などのジョイント定義のパラメーターを介して行う必要があります。たとえば、b2PrismaticJoints には、関節の可動範囲の中心を定義する anchorPoint があります。

于 2012-06-28T12:58:07.443 に答える