SKLabelNode 倒置可能吗?

SKLabelNode upside down possible?

我正在 xcode 6 和 swift 开发一款游戏。我有一个得分标签 var scoreLabel: SKLabelNode!。现在,在我的一种方法中,我显示了我的标签:

scoreLabel = SKlabelNode(fontNamed: "TrebuchetMS-Bold")
scoreLabel.text = "\(score)"
scoreLabel.fontSize = 30
scoreLabel.fontColor = SKColor .redColor()
scoreLabel.position = CGPoint(x:780, y:180)
addChild(scoreLabel)

这显示了我的分数,例如:2500。 是否可以颠倒显示?

抱歉,我写的是列表,因为我不能在这里倒写。

感谢您的回答。

您可以创建一个自定义 class 来遍历 string 中的每个 character 并为每个 character 创建一个单独的 SKLabelNode

class SKVerticalLabelNode : SKNode
{
    var fontName : String = "" {
        didSet {
            self.updateLabelProperties()
        }
    }

    var fontSize : CGFloat = 10.0 {
        didSet {
            self.updateLabelProperties()
        }
    }

    var fontColor : UIColor = UIColor.whiteColor() {
        didSet {
            self.updateLabelProperties()
        }
    }

    var text : String = "" {
        didSet {
           self.updateLabelProperties()
        }
    }

    func updateLabelProperties () {
        self.removeAllChildren()
        let length = countElements(text)
        var yPosition : CGFloat = 0
        for character in reverse(text) {
            let label = SKLabelNode(fontNamed: self.fontName)
            label.fontColor = self.fontColor
            label.fontSize = self.fontSize
            label.text = String(character)
            label.position = CGPointMake(0, yPosition)
            yPosition += label.frame.size.height
            addChild(label)
        }
    }
}

可以这样用

let scoreLabel = SKVerticalLabelNode()
scoreLabel.fontName = "TrebuchetMS-Bold"
scoreLabel.text = "2500"
scoreLabel.fontSize = 30
scoreLabel.fontColor = UIColor.redColor()
scoreLabel.position = CGPoint(x:180, y:180)
addChild(scoreLabel)

为此使用 SKLabelNodePlus 标签。
这里是link:https://github.com/MKargin0/SKLabelNodePlus

然后,只需通过写myLabel.xScale = -1来反转标签。就这么简单!