我们的第一场比赛就要上线了。我们发现sprite kit的性能相当好。我们正在移动数百个精灵,并且有特效节点和声音。但是,你一定不敢设定分数。SKLabelNode非常慢。
运行诊断后,发现以下代码是罪魁祸首。
scoreLabel.text = [NSString stringWithFormat:@"Score: %d",my_score];在诊断工具中,setText命令被显示为最昂贵的。我们甚至确保它不会被频繁调用。它仍然会导致延迟,导致精灵的抖动/抖动/hickup。一旦我们移除了line...we,就得到了平滑的运动。
如果我们不能在游戏场景中使用SKLabelNodes,还有其他选择吗?
发布于 2015-01-15 04:55:59
注意不要加载整个字体系列。如果我加载“黑板SE”,它将需要4-6秒,并似乎工作。
但是如果我加载ChalkboardSE-Regular,它实际上是瞬间的~100ms或更少。
一旦它被添加到场景中,随后的调用就会非常迅速。但是,如果您转换到另一个场景,它可能会重新加载,因此请尽早执行此操作。
我先用字体系列做了一些测试,结果相当糟糕。缓存强引用无济于事。https://gilesey.wordpress.com/2015/01/14/ios-spritekit-font-loading-times-of-sklabelnodes/
https://stackoverflow.com/questions/24478476
复制相似问题