Centre a SKLabelNode on a SKSpriteNode

后端 未结 3 1121
半阙折子戏
半阙折子戏 2021-02-19 20:18

I have an SKLabelNode that is the child of a SKSpriteNode because I\'m trying to create a Button class to create buttons in an easier way. I\'ve tried a couple of things using t

相关标签:
3条回答
  • 2021-02-19 20:45

    This will put your label in center of scene in sprite kit:

    yourLabel.horizontalAlignmentMode = .Center;
    yourLabel.verticalAlignmentMode = .Center
    
    0 讨论(0)
  • 2021-02-19 20:47

    Swift 4.2 XCode 10.1

    Copy this function into your SceneKit Class

    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)
        }
    
    0 讨论(0)
  • 2021-02-19 20:57

    I realized how to solve this...here's what i did. Keep in mind that I have a class called Button that is a subclass of SKSpriteNode.

    In the Button.m class I have an instance variable called label that is a SKLabelNode. I add the label node as a child to the button then set the horizontal and vertical alignment modes to centre.

    label = [[SKLabelNode alloc] init];
    [self addChild:label];
    [label setHorizontalAlignmentMode:SKLabelHorizontalAlignmentModeCenter];
    [label setVerticalAlignmentMode:SKLabelVerticalAlignmentModeCenter];
    
    0 讨论(0)
提交回复
热议问题