0

我根据本教程创建了一根绳子,除了我的绳子在绳子的每一端都有一个球。

高级:这就是他们制作绳索的方式。

  1. 创建一个数组SKNodes
  2. 将每个绳索段(节点)附加到数组
  3. 将每个节点添加到屏幕
  4. 将每个节点连接在一起形成一条绳索
  5. (然后我在绳子的每一端添加一个球)

在我的程序中,我移动球,基本上像一个有弹性的钟摆一样摆动绳索。

这是我的问题:如果我非常用力地摆动绳子,绳子就会拉伸太多!如何减少绳索的拉伸量?我没有看到降低身体弹性的方法。

如果有任何其他有用的信息,请告诉我!提前致谢

4

1 回答 1

2

你可以试试这两种方法。第一种方法是增加类的frictionTorque属性SKPhysicsJointPin

值的范围是从 0.0 到 1.0。默认值为 0.0。如果指定的值大于默认值,则会应用摩擦来降低对象围绕销的角速度。

您遵循的教程的示例,在将 a 添加joint到场景之前,修改frictionTorque

for i in 1...length {
    let nodeA = ropeSegments[i - 1]
    let nodeB = ropeSegments[i]
    let joint = SKPhysicsJointPin.jointWithBodyA(nodeA.physicsBody!, bodyB: nodeB.physicsBody!,
        anchor: CGPointMake(CGRectGetMidX(nodeA.frame), CGRectGetMinY(nodeA.frame)))
    joint.frictionTorque = 0.5    // Add this line

    scene.physicsWorld.addJoint(joint)
}

第二种方法是限制销接头的摆动角度。启用后shouldEnableLimits,调整lowerAngleLimitupperAngleLimit弧度。

阅读更多关于确定销接头特性的SKPhysicsJointPin 类参考。

于 2015-09-30T05:28:27.493 回答