macos swift sprite-kit skphysicsbody skfieldnode

macos - radialGravityField se vuelve loco después de un tiempo



swift sprite-kit (0)

Intento crear un juego de SpriteKit usando Swift que se parece a un simulador de gravedad en 2D, pero cuando mis objetos se acercan un poco van en la dirección opuesta con velocidades increíbles.

Esto puede estar relacionado con las minimumRadius , categoryBitMask o fieldBitMask en el campo y physicsBody, pero no sé exactamente.

Aquí está el código relevante:

override func mouseDown(theEvent: NSEvent) { let location = theEvent.locationInNode(self) let sprite = SKShapeNode(circleOfRadius: 5) sprite.fillColor = SKColor(red: 0, green: 0.5, blue: 1, alpha: 1) sprite.strokeColor = SKColor.clearColor() sprite.position = location sprite.physicsBody = SKPhysicsBody(circleOfRadius: 5) let gravityField = SKFieldNode.radialGravityField() //gravityField.minimumRadius = 5 sprite.addChild(gravityField) self.addChild(sprite) }

Y una demostración gif del problema:

Como puede ver, la distancia que los objetos deben moverse para desencadenar el problema parece ser aleatoria.