Я соединил несколько изображений в веревку. Как я могу уменьшить растяжение веревки?

Я создал веревку на основе этого урока, за исключением того, что к моей веревке прикреплен один шарик на каждом конце веревки.

Высокий уровень: так они создают веревку.

  1. создать массив SKNodes
  2. добавить каждый сегмент (узел) веревки в массив
  3. добавить каждый узел на экран
  4. соединить каждый узел вместе, чтобы сформировать веревку
  5. (Затем я добавляю шарик на каждый конец веревки)

В моей программе я двигаю мяч и в основном качаю веревку вокруг, как эластичный маятник.

Вот моя проблема: если я очень сильно раскачиваю веревку, она слишком сильно растягивается! Как я могу уменьшить величину натяжения веревки? Я не вижу способа снижения эластичности тела.

Если есть какая-либо другая информация, которая будет полезна, пожалуйста, дайте мне знать! заранее спасибо

1 ответ

Вы можете попробовать эти два метода. Первый способ - увеличить свойство frictionTorque из SKPhysicsJointPin учебный класс.

Диапазон значений составляет от 0,0 до 1,0. Значение по умолчанию - 0.0. Если указано значение, превышающее значение по умолчанию, применяется трение для уменьшения угловой скорости объекта вокруг штифта.

Пример учебника, которому вы следовали, перед добавлением 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, настроить lowerAngleLimit а также upperAngleLimit в радианах.

Подробнее о SKPhysicsJointPin Class Reference для определения характеристик штифтового соединения.

Другие вопросы по тегам