当我在场景编辑器的自定义类检查器中将场景的节点设置为我的SKSpriteNode
子类时,节点按照预期(在实现init(coder:_)
方法之后)工作,除了节点上的物理主体。
以下是节点的Attributes Inspector的屏幕截图:
我注意到物理定义显然没有设置。但正如您在我的SKSpriteNode
子类的init方法中所看到的,我在这里设置了物理主体:
required init()
{
// Super
super.init(texture: nil, color: MyColour, size: MySize)
// Setup the bubble node
_setupBubbleNode()
}
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
// Setup the bubble node
_setupBubbleNode()
}
private func _setupBubbleNode()
{
// Properties...
/// setup stuff...
// Physics body
physicsBody = SKPhysicsBody(circleOfRadius: _radius)
physicsBody!.mass = _bubbleMass
physicsBody!.linearDamping = 20
physicsBody!.angularDamping = 1
physicsBody!.restitution = 0.2
physicsBody!.allowsRotation = false
physicsBody!.affectedByGravity = true
// Other stuff...
/// setup stuff...
}
注意:我还应该补充一点,当以编程方式添加我的精灵的新实例时,物理工作......