SpriteBuilder添加的TrueType字体未显示在log中的原因分析

时间:2023-03-09 17:00:22
SpriteBuilder添加的TrueType字体未显示在log中的原因分析

按照书上的说法,在SpriteBuilder中添加的TrueType字体名称会在枚举字体方法显示的log中出现。但是运行程序后没有在log中发现对应的字体名称。

因为该字体是例子中作者制作的,所以字体名称与文件名称一定是匹配的(除了没有文件后缀)。而且在运行的程序中的确看到了该字体正确的显示效果(Settings用的是系统自带字体,Slider左边的label字体是用户的TrueType字体):

SpriteBuilder添加的TrueType字体未显示在log中的原因分析

这就证明字体已经加载成功了,但是为毛log中没有呢?

后来才知道,原来log是在MainScene中执行的,此时Settings窗口还未显示,所以这时该字体还未加载进来,自然log中不能被枚举到。现在将枚举方法放到Settings窗口显示之后,然后在log中就可以看到该字体了:

SpriteBuilder添加的TrueType字体未显示在log中的原因分析

所以即使在App中添加了自定义TrueType字体,该字体也不一定在App一开始运行就加载,该字体会在需要加载的地方才加载到系统中去。