swift - 具有两种不同字体和颜色的 SKLabelNode 文本。这怎么可能?

标签 swift sprite-kit sklabelnode

我有一个 SKLabelNode,它被设置为显示 Score 变量,然后是 Highscore 变量

scoreLabel.text = "\(score)/\(classicHScoreInt)"

现在,一切都很好,但我希望 classicHScoreInt 的字体更小,颜色可能也不同。这怎么可能?

classicHScoreInt 是(如前所述)一个整数,score 也是如此

最佳答案

您不能将两种字体设置到同一个 SKLabelNode 实例。相反,您可以编写子类来创建一个包含多个具有不同字体大小的 SKLabelNodes 的自定义节点。例如,您的 scoreLabel 可以是以下类的实例。

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

let scoreLabel = ScoreLabel()
scoreLabel.position = CGPointMake(100, 300)
scoreLabel.score = 10
self.addChild(scoreLabel)

ScoreLabel 中的两个标签从外部充当单个SKNodeSKActions 可以在 ScoreLabel 上执行,它会影响两个 子标签节点。比如

    scoreLabel.runAction(SKAction.scaleTo(2.0, duration: 2.0))

这会将两个标签作为一个单元一起缩放。

关于swift - 具有两种不同字体和颜色的 SKLabelNode 文本。这怎么可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28356256/

相关文章:

Xcode:使用 Swift 将默认自定义字体添加到 SKLabelNode

ios - SKLabelNodes 下降 fps

swift - 使用 Swift 实时 NSTask 输出到 NSTextView

ios - 在 VCard Swift 中导出图片

ios - 将 View Controller 传递给彼此或确保仅初始化它们一次

ios - 如何在 sprite kit 游戏中改变重心?

ios - Swift SpriteKit edgeLoopF​​romRect 问题

ios - SKLabelNode 延迟应用程序启动

ios - 如何使我的 iOS 应用程序正确调整大小以适应所有 iphone 设备?

ios - 处理 UITableViewCell 中的按钮列表