具有两种不同字体和颜色的 SKLabelNode 文本。这怎么可能?
SKLabelNode text with two different fonts and colour. How is this possible?
我有一个 SKLabelNode
设置为显示得分变量,然后显示高分变量
scoreLabel.text = "\(score)/\(classicHScoreInt)"
现在,一切正常,但我希望 classicHScoreInt 的字体更小,颜色可能也不同。这怎么可能?
classicHScoreInt
是(如上所述)一个整数,score
也是一个整数
您不能将两种字体设置到同一个 SKLabelNode
实例。相反,您可以编写 subclasses 来创建一个包含多个 SKLabelNodes
且字体大小不同的自定义节点。例如,您的 scoreLabel 可以是以下 class.
的实例
class ScoreLabel : SKNode
{
var label : SKLabelNode!
var scoreLabel : SKLabelNode!
var score : Int = 0 {
didSet
{
scoreLabel.text = "\(score)"
}
}
override init() {
super.init()
label = SKLabelNode(text: "Score : ")
label.position = CGPointMake(0, 0)
label.fontSize = 20
addChild(label)
scoreLabel = SKLabelNode(text: "\(0)")
scoreLabel.position = CGPointMake(label.frame.size.width , 0)
scoreLabel.fontSize = 25
addChild(scoreLabel)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
使用 ScoreLabel
class
let scoreLabel = ScoreLabel()
scoreLabel.position = CGPointMake(100, 300)
scoreLabel.score = 10
self.addChild(scoreLabel)
ScoreLabel
中的两个标签在外部充当单个 SKNode
。
SKActions
可以在 ScoreLabel
上执行,它会影响 child label nodes
。例如
scoreLabel.runAction(SKAction.scaleTo(2.0, duration: 2.0))
这会将两个标签作为一个整体进行缩放。
我有一个 SKLabelNode
设置为显示得分变量,然后显示高分变量
scoreLabel.text = "\(score)/\(classicHScoreInt)"
现在,一切正常,但我希望 classicHScoreInt 的字体更小,颜色可能也不同。这怎么可能?
classicHScoreInt
是(如上所述)一个整数,score
您不能将两种字体设置到同一个 SKLabelNode
实例。相反,您可以编写 subclasses 来创建一个包含多个 SKLabelNodes
且字体大小不同的自定义节点。例如,您的 scoreLabel 可以是以下 class.
class ScoreLabel : SKNode
{
var label : SKLabelNode!
var scoreLabel : SKLabelNode!
var score : Int = 0 {
didSet
{
scoreLabel.text = "\(score)"
}
}
override init() {
super.init()
label = SKLabelNode(text: "Score : ")
label.position = CGPointMake(0, 0)
label.fontSize = 20
addChild(label)
scoreLabel = SKLabelNode(text: "\(0)")
scoreLabel.position = CGPointMake(label.frame.size.width , 0)
scoreLabel.fontSize = 25
addChild(scoreLabel)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
使用 ScoreLabel
class
let scoreLabel = ScoreLabel()
scoreLabel.position = CGPointMake(100, 300)
scoreLabel.score = 10
self.addChild(scoreLabel)
ScoreLabel
中的两个标签在外部充当单个 SKNode
。
SKActions
可以在 ScoreLabel
上执行,它会影响 child label nodes
。例如
scoreLabel.runAction(SKAction.scaleTo(2.0, duration: 2.0))
这会将两个标签作为一个整体进行缩放。