radialGravityField сходит с ума через некоторое время

Я пытаюсь создать игру SpriteKit, используя Swift, которая выглядит как 2D симулятор гравитации, но когда мои объекты немного приближаются, они движутся в противоположном направлении с безумными скоростями.

Это может быть связано с minimumRadius, categoryBitMask или же fieldBitMask свойства на поле и физика тела, но я точно не знаю.

Вот соответствующий код:

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)
}

И GIF-демонстрация проблемы:

Демонстрация проблемы

Как вы можете видеть, расстояние, на которое объекты должны перемещаться, чтобы вызвать проблему, кажется случайным.

0 ответов

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