我有一个SKLabelNode,它是SKSpriteNode的子节点,因为我正在尝试创建一个Button类,以更轻松地创建按钮。我尝试过使用SKSpriteNode的锚点来做一些事情,但我不太明白到底发生了什么。如何将标签居中于精灵(其父节点)上?
我有一个SKLabelNode,它是SKSpriteNode的子节点,因为我正在尝试创建一个Button类,以更轻松地创建按钮。我尝试过使用SKSpriteNode的锚点来做一些事情,但我不太明白到底发生了什么。如何将标签居中于精灵(其父节点)上?
我意识到如何解决这个问题...这是我所做的。请记住,我有一个名为Button的类,它是SKSpriteNode的子类。
在Button.m类中,我有一个实例变量称为label,它是SKLabelNode。我将标签节点添加为按钮的子节点,然后将水平和垂直对齐模式设置为居中。
label = [[SKLabelNode alloc] init];
[self addChild:label];
[label setHorizontalAlignmentMode:SKLabelHorizontalAlignmentModeCenter];
[label setVerticalAlignmentMode:SKLabelVerticalAlignmentModeCenter];
这将使你的标签在 Sprite Kit 场景中居中:
yourLabel.horizontalAlignmentMode = .Center;
yourLabel.verticalAlignmentMode = .Center
将此函数复制到您的SpriteKit类中:
func createLabel(text: String) {
// initialisation
let label = SKLabelNode(fontNamed: "Wicked Mouse")
// customisation
label.text = text
label.fontColor = .white
label.fontSize = 30.0
// positioning
label.position = CGPoint(x: self.size.width / 2, y: self.size.height / 2)
label.verticalAlignmentMode = .center
label.horizontalAlignmentMode = .center
label.zPosition = 1
self.addChild(label)
}