gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 01:37:22 25 4
gpt4 key购买 nike

我到处搜索,但我只能找到如何更改 UILabel 字体,而找不到任何地方教如何更改默认 SKLabelNode 字体。我如何在 Xcode 中使用 swift 做到这一点?

我已经将字体添加到Info.plist

我也试过添加一个扩展来改变默认字体,但它也没有用

最佳答案

改变一个 SKLabelNode 的字体

您可能已经知道,您可以使用 fontName 属性更改 SKLabelNode 的字体。

let label = SKLabelNode(fontNamed:"Chalkduster")

enter image description here

label.fontName = "Arial"

enter image description here

更改所有 SKLabelNode 的字体

现在,如果我没记错的话,您想更改场景中所有标签fontName

首先,我们需要一种简单的方法来访问场景图中的所有节点。我的意思是,不仅是场景的直接子级,还有每个子级的子级......

访问场景图

我能想到的最好的方法是在 SKNode 中实现一个 visit 扩展

extension SKNode {
func visit(logic: (node:SKNode) -> ()) {
logic(node:self)
children.forEach { $0.visit(logic) }
}
}

现在 SKNode 有一个接收闭包的 visit 函数。闭包应用于当前节点和每个子节点。然后递归重复该过程,直到有新的后代。

启动递归

现在在你的 GameScene 中你可以添加这段代码

class GameScene: SKScene {

func changeFonts() {
visit { (node) -> () in
if let label = node as? SKLabelNode {
label.fontName = "Arial"
}
}
}
}

最后,当您准备好调用 changeFonts() 时。它应该完成这项工作。

请记住使用 a font available in SpriteKit .

关于Xcode:使用 Swift 将默认自定义字体添加到 SKLabelNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com