将SKLabelNode置于SKSpriteNode上

时间:2014-09-13 01:30:18

标签: sprite-kit skspritenode sklabelnode

我有一个SKLabelNode,它是SKSpriteNode的子代,因为我试图创建一个Button类来以更简单的方式创建按钮。我已经使用SKSpriteNode的锚点尝试了一些事情,但我并不完全清楚究竟发生了什么。如何将标签置于精灵(它的父节点)上?

3 个答案:

答案 0 :(得分:16)

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

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

label = [[SKLabelNode alloc] init];
[self addChild:label];
[label setHorizontalAlignmentMode:SKLabelHorizontalAlignmentModeCenter];
[label setVerticalAlignmentMode:SKLabelVerticalAlignmentModeCenter];

答案 1 :(得分:11)

这会将你的标签放在sprite kit中的场景中心:

yourLabel.horizontalAlignmentMode = .Center;
yourLabel.verticalAlignmentMode = .Center

答案 2 :(得分:1)

Swift 4.2 XCode 10.1

将此函数复制到您的SceneKit类中

func createLabel(text: String) {
        let label = SKLabelNode(fontNamed: "Wicked Mouse")

        label.text = text
        label.fontColor = .white
        label.position = CGPoint(x: self.size.width / 2, y: self.size.height / 2)
        label.verticalAlignmentMode = .center
        label.horizontalAlignmentMode = .center
        label.fontSize = 30.0
        label.zPosition = 1
        self.addChild(label)
    }