Как изменить источник гравитации в сцене спрайта Kit - PullRequest
1 голос
/ 13 мая 2019

Я хочу, чтобы все мои SKN-узлы, на которые воздействует гравитация, перешли к горизонтальной линии на моем виде SKScene, а не снизу.Что-то вроде линии, которая является полюсом гравитации.Есть ли способ сделать это?

1 Ответ

1 голос
/ 13 мая 2019

Вы пытались использовать SKFieldNode ?

Имеет различные симуляции в отношении физики; например, он может создать

class func radialGravityField() -> SKFieldNode

Что делает следующее:

Создает узел поля, который ускоряет физические тела к узлу поля.

Редактировать:

Вот пример, сделанный в Playground того, как SKFieldNode работает с SKShapeNode

override func didMove(to view: SKView) {
      let sampleNodeRadius: CGFloat = 15
      let gravityNode = SKFieldNode.radialGravityField()
      let sampleNode = SKShapeNode(circleOfRadius: sampleNodeRadius)

      sampleNode.fillColor = .red
      sampleNode.physicsBody = SKPhysicsBody(circleOfRadius: sampleNodeRadius)

      gravityNode.minimumRadius = 1000
      gravityNode.strength = 50

      addChild(gravityNode)
      addChild(sampleNode)

      physicsWorld.gravity = CGVector(dx: 0, dy: 0)

      sampleNode.position = CGPoint(x: -100, y: -100)

      gravityNode.position = CGPoint(x: 0, y: 0)
   }
...