スプライト キットで作成しているマリオネットがあり、シーンに配置しています。SKNode のサブクラスである Marionette クラスを作成しました。このクラスのインスタンスを作成するときに、多数の SKSpriteNode を相互に追加します。これにより、どのように機能するかがわかります (不要な行は省略しています)。
[self addChild:self.head];
[self.head addChild:self.chest];
[self.chest addChild:self.leftLeg];
[self.chest addChild:self.rightLeg];
[self.leftLeg addChild:self.leftFoot];
[self.rightLeg addChild:self.rightFoot];
それで、これをした後、マリオネットが現れました。これらの接続のそれぞれに SKPhysicsJointPin を追加したいと考えています。コードは次のようになります。
self.chestPin = [SKPhysicsJointPin jointWithBodyA:self.marionette.head.physicsBody bodyB:self.marionette.chest.physicsBody anchor:self.marionette.chest.anchorPoint];
最初は、Marionette クラス内にすべてのピンを設定するだけでよいと思っていましたが、うまくいきません (思い出すと EXC_BAD_ACCESS が返されます)。関節を追加する前に、全体の SKScene にマリオネットを追加する必要があることがわかりました。
これは理にかなっていると思いますが、Marionette クラスですべてをセットアップし、シーンに 2 行のコードを貼り付けて新しい Marionette を作成し、addChild 彼をシーン。
現状では、私の SKScene サブクラスには、すべてのピンを追加するための一連のコードがあり、シーンに収まるようには感じられません。考え?