所以我有一个我正在 Sprite Kit 中制作的木偶,并将他放置在一个场景中。我创建了一个 Marionette 类,它是 SKNode 的一个子类,当我创建这个类的一个实例时,我将多个 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)。事实证明,在添加关节之前,我必须将 Marionette 添加到整个 SKScene 中。
我想这是有道理的,但我不禁想到应该有某种方法可以在 Marionette 类中设置所有内容,然后在场景中粘贴 2 行代码来创建一个新的 Marionette,然后将他添加到场景。
事实上,我的 SKScene 子类现在有一堆代码来添加所有引脚,而且感觉它不适合场景。想法?