SKLabelNode没有出现在SKSpriteNode swift上

时间:2016-01-29 09:06:44

标签: swift sprite-kit

我试图将SKLabelNode添加为SKSpriteNode的子项:

var mainNode = SKSpriteNode()

override func didMoveToView(view: SKView) {

    mainNode = SKSpriteNode(color: UIColor.redColor(), size: self.size)
    mainNode.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
    mainNode.zPosition = -2
    mainNode.name = "MainNode"
    self.addChild(mainNode)

    let myLabel = SKLabelNode(fontNamed:"Chalkduster")
    myLabel.text = "Hello, World!"
    myLabel.fontSize = 45
    myLabel.position = CGPoint(x:CGRectGetMidX(mainNode.frame), y:CGRectGetMidY(mainNode.frame))

    mainNode.addChild(myLabel)
}

但SKLabelNode没有出现。我试图改变它的zPosition,但它无论如何都没有用。

如果我在场景上添加标签(self.addChild(myLabel)),它就可以正常使用

1 个答案:

答案 0 :(得分:3)

你的问题是CGPoint(x:CGRectGetMidX(mainNode.frame), y:CGRectGetMidY(mainNode.frame))使你的标签超出范围。因此,如果您希望SKLabelNode水平和垂直居中,您可以像这样做

let myLabel = SKLabelNode(fontNamed:"Chalkduster")
myLabel.text = "Hello, World!"
myLabel.fontSize = 45
myLabel.horizontalAlignmentMode = .Center
myLabel.verticalAlignmentMode = .Center
mainNode.addChild(myLabel)