首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向对象添加SKPhysicsJoint的最佳方法

向对象添加SKPhysicsJoint的最佳方法
EN

Stack Overflow用户
提问于 2013-10-29 00:11:58
回答 1查看 755关注 0票数 2

所以我在雪碧包中制作了一个提线木偶,并把他放在一个场景中。我已经创建了一个Marionette类,它是SKNode的一个子类,当我创建这个类的一个实例时,我会相互添加一些SKSpriteNodes。这应该会让你对它的工作原理有一个概念(我已经剪掉了不必要的代码行):

代码语言:javascript
复制
[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。代码如下所示:

代码语言:javascript
复制
self.chestPin = [SKPhysicsJointPin jointWithBodyA:self.marionette.head.physicsBody bodyB:self.marionette.chest.physicsBody anchor:self.marionette.chest.anchorPoint];

起初,我认为我可以在Marionette类中设置所有的引脚,但这不起作用(如果我还记得的话,我得到了EXC_BAD_ACCESS )。原来,在添加关节之前,我必须将木偶添加到整体SKScene中。

我猜这是有道理的,但我不禁想,应该有一些方法,我可以在Marionette类中设置一切,然后在场景中粘贴两行代码来创建一个新的Marionette,然后将他addChild到场景中。

实际上,我的SKScene子类现在有一堆代码来添加所有的引脚,它感觉它不适合场景。有什么想法?

EN

回答 1

Stack Overflow用户

发布于 2013-10-29 00:40:57

您不希望使用anchorPoint作为锚点。anchorPoint属性是一个范围从0到1的因子,它影响纹理如何从精灵的位置偏移,即默认的0.5/0.5使精灵的纹理在精灵的位置居中。换句话说,anchorPoint不是一个位置,使用它会将body & head关节锚定在屏幕的左下角。

取而代之的是尝试使用胸部或头部的位置作为锚,或者两者之间的点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19639778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档