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.