我们的第一款游戏即将投入使用。我们发现精灵套件的性能相当不错。我们正在移动数百个精灵并产生效果节点和声音。但是你必须不敢设置分数。 SKLabelNode非常慢。
运行诊断后,发现以下代码是罪魁祸首。
scoreLabel.text = [NSString stringWithFormat:@"Score: %d",my_score];
在诊断工具中,setText命令显示为最昂贵的。我们甚至确保它不经常被调用。它仍然导致一个延迟导致精灵抖动/抖动/ hickup。一旦我们移除了线......我们得到了平稳的运动。
如果我们无法在游戏场景中使用SKLabelNodes,还有其他选择吗?
答案 0 :(得分:3)
请注意,您没有加载整个字体系列。 如果我加载“Chalkboard SE”,则需要4-6秒,并且似乎可以正常工作。
但如果我加载ChalkboardSE-Regular,它几乎是瞬间~100ms或更短。
一旦将其添加到场景中,后续调用非常快。但是如果你转换到另一个场景,它可能会重新加载,所以请尽早。
我首先使用字体系列进行了一些测试,结果非常糟糕。缓存强大的引用并没有帮助。 https://gilesey.wordpress.com/2015/01/14/ios-spritekit-font-loading-times-of-sklabelnodes/