12

我有一个 SKLabelNode ,它是 SKSpriteNode 的子节点,因为我正在尝试创建一个 Button 类来以更简单的方式创建按钮。我使用 SKSpriteNode 的锚点尝试了几件事,但我不太明白到底发生了什么。如何将标签居中到精灵(它是父节点)上?

4

3 回答 3

17

我意识到如何解决这个问题......这就是我所做的。请记住,我有一个名为 Button 的类,它是 SKSpriteNode 的子类。

在 Button.m 类中,我有一个名为 label 的实例变量,它是一个 SKLabelNode。我将标签节点作为子节点添加到按钮,然后将水平和垂直对齐模式设置为居中。

label = [[SKLabelNode alloc] init];
[self addChild:label];
[label setHorizontalAlignmentMode:SKLabelHorizontalAlignmentModeCenter];
[label setVerticalAlignmentMode:SKLabelVerticalAlignmentModeCenter];
于 2014-09-13T01:53:43.720 回答
13

这会将您的标签放在精灵套件中的场景中心:

yourLabel.horizontalAlignmentMode = .Center;
yourLabel.verticalAlignmentMode = .Center
于 2015-06-24T17:48:22.563 回答
4

斯威夫特 4.2 XCode 10.1

将此函数复制到您的 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)

}
于 2018-12-31T05:35:32.973 回答