b2Body* foundation =[self createStaticBodyAtLocation:CGPointMake(15, 15) withSize:CGSizeMake(35, 35)];
b2Body* beam=[self createDynamicBodyAtLocation:CGPointMake(105, 35) withSize:CGSizeMake(150, 10)];
b2RevoluteJointDef revoluteJointDef;
revoluteJointDef.Initialize(foundation, beam, b2Vec2(30.0/PTM_RATIO,30.0/PTM_RATIO));
_world->CreateJoint(&revoluteJointDef);
上記のコードは、静的および動的なボディを作成し、それらをrevolutejointで結合します。これが私が得るものです:
次に、次の行を追加して、静的な円である別のボディを追加し、円と、バーのもう一方の端にある前に追加したバーを結合します。
b2Body *jointBall=[self createCircleAtLocation:CGPointMake(160, 135)];
revoluteJointDef.Initialize(jointBall, beam, b2Vec2(100.0/PTM_RATIO,10.0/PTM_RATIO));
_world->CreateJoint(&revoluteJointDef);
しかし、これが私が得るものです:
円を追加した後、バーを移動できません。修正されました。しかし、私はそれがサークルに加わることを期待しています。アンカーポイントを別の位置に変更しようとしましたが、役に立ちません。私は何が欠けていますか?おそらく、動的ボディを複数の静的ボディに結合することはできません。