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。
是否可以颠倒显示?
- 2
- 5
- 0
- 0
抱歉,我写的是列表,因为我不能在这里倒写。
感谢您的回答。
您可以创建一个自定义 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
来反转标签。就这么简单!
我正在 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。 是否可以颠倒显示?
- 2
- 5
- 0
- 0
抱歉,我写的是列表,因为我不能在这里倒写。
感谢您的回答。
您可以创建一个自定义 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
来反转标签。就这么简单!