gpt4 book ai didi

ios - 将 SKPhysicsJoint 添加到对象的最佳方法

转载 作者:行者123 更新时间:2023-12-01 19:05:57 25 4
gpt4 key购买 nike

所以我有一个我在 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 子类现在有一堆代码来添加所有的引脚,但感觉它不适合场景。想法?

最佳答案

您不想使用 anchorPoint作为 anchor 。 anchorPoint 属性是一个范围从 0 到 1 的因素,它影响纹理如何从 Sprite 的位置偏移,即默认的 0.5/0.5 将 Sprite 的纹理放在 Sprite 的位置上。换句话说 anchorPoint不是一个位置,使用它会将 body 和头部关节 anchor 定到屏幕的左下角。

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

关于ios - 将 SKPhysicsJoint 添加到对象的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com