SpriteKit:SKPhysicsJointLimit不尊重“ maxLength”

西1

我正在尝试在SpriteKit中创建一个类似链的结构,但无法理解SKPhysicsJointLimitmaxLength属性的行为似乎什么也没做。

这个问题没有解决我的问题。

根据文档maxLength通过极限关节连接的两个物理物体之间允许的最大距离

但是,我的两个节点的方向比它们的maxLength远得多的确,我将它们的初始位置设置为比maxLength-更远,但是我希望节点在仿真过程中能够拉在一起,就像被一条可伸缩的绳索绑在一起一样。而是,节点保持距离较远。

因此,这里有一些代码设置了两个SKSpriteNodes之间的联合

let screen = UIScreen.main.bounds
let bodyA = SKSpriteNode(imageNamed: "box.png")
let bodyB = SKSpriteNode(imageNamed: "box.png")

bodyA.size = CGSize(width: 20, height: 20)
bodyB.size = CGSize(width: 20, height: 20)
        
bodyA.position = CGPoint(x: screen.width*0.4, y: screen.height*0.8)
bodyB.position = CGPoint(x: screen.width*0.6, y: screen.height*0.8)
        
bodyA.physicsBody = SKPhysicsBody(circleOfRadius: 20)
bodyB.physicsBody = SKPhysicsBody(circleOfRadius: 20)

addChild(bodyA)
addChild(bodyB)

let pinJoint = SKPhysicsJointLimit.joint(withBodyA: bodyA.physicsBody!, bodyB: bodyB.physicsBody!, anchorA: CGPoint(x: 0.5, y: 0.5), anchorB: CGPoint(x: 0.5, y: 0.5))

//This doesn't seem to do anything:
pinJoint.maxLength = 5.0

scene?.physicsWorld.add(pinJoint)

在模拟中,很明显,还有就是连接两个节点的物理联合-它只是节点是多少相隔较远比他们应。

为什么我的maxLength值不改变两个节点的行为,如何解决该问题?我不明白什么?

感谢您的输入!

bg2b

确保锚点位于场景坐标中,如文档中所述。(0.5,0.5)可能是“ sprite的中心”或类似的东西,但这对于关节是不正确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章