radialGravityField在一段时间后变得疯狂

时间:2015-05-24 22:41:54

标签: macos swift sprite-kit skphysicsbody skfieldnode

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

这可能与字段和physicsBody上的minimumRadiuscategoryBitMaskfieldBitMask属性有关,但我不确切知道。

以下是相关代码:

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

Problem demonstration

正如您所看到的,物体移动以触发问题所需的距离似乎是随机的。

0 个答案:

没有答案