4

我正在尝试使用 Swift 创建一个看起来有点像 2D 重力模拟器的 SpriteKit 游戏,但是当我的对象接近一点时,它们会以疯狂的速度向相反的方向移动。

这可能与 field 和 PhysicsBody 的minimumRadius, categoryBitMaskorfieldBitMask属性有关,但我并不确切知道。

以下是相关代码:

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 演示:

问题演示

如您所见,触发问题所需的对象移动距离似乎是随机的。

4

0 回答 0