SKLabelNodes 下降 fps
SKLabelNodes drop fps
我有一个基于 SpriteKit 的小游戏。
在这个游戏中,我使用了很多带有字母(或字母组合)的节点,用户可以四处移动来构建单词。
这些节点基本上是带有 SKLabelNode 的 SKSpriteNode。
当我有相当多的节点时,绘制计数会增加,而 FPS 会急剧下降。
显然,当我删除 SKLabelNodes 时,绘图计数保持较低。但我仍然需要那些字母。
问题是,在不降低 FPS 的情况下添加这些字母的最佳方法是什么?
有三种方法可以做到这一点,每种都是不同的折衷方案。
第一个,也是最简单的,是在现有标签上使用 shouldRasterize。对于 Sprite Kit 中的标签,这似乎不存在。卫生署!
使用位图纹理作为对象上的字母,实际上作为精灵,Sprite Kit 处理得最好。这将涉及使用位图字体生成器,例如 Whirlwind 在评论中指出的优秀 BMGlyph。
这并不容易,因为编码部分会更加劳动密集,但您应该通过这种方式获得绝对最佳的性能。
您仍然可以交换字母,但您需要将它们视为纹理的子部分而不是字母。将每个字母在纹理中的位置分配给易于记忆的内容的数组或字典将既高效又易于使用。但设置起来需要大量劳动。比 SKLabelNode
更重要
或者,您可以疯狂地使用代码创建纹理,方法是在虚拟对象上使用 SKLabelNode,然后 "rendering" 或 "drawing" 将其添加到纹理,然后使用该纹理( s) 将每个字母放到 objects/sprites 上。类似于 BMGlyph 的工作方式,但更耗时且更不灵活。
BMGlyph 是速度和易用性的最佳结合,它也有一些非常漂亮的效果来创建漂亮的文本。
我有一个基于 SpriteKit 的小游戏。
在这个游戏中,我使用了很多带有字母(或字母组合)的节点,用户可以四处移动来构建单词。
这些节点基本上是带有 SKLabelNode 的 SKSpriteNode。
当我有相当多的节点时,绘制计数会增加,而 FPS 会急剧下降。
显然,当我删除 SKLabelNodes 时,绘图计数保持较低。但我仍然需要那些字母。
问题是,在不降低 FPS 的情况下添加这些字母的最佳方法是什么?
有三种方法可以做到这一点,每种都是不同的折衷方案。
第一个,也是最简单的,是在现有标签上使用 shouldRasterize。对于 Sprite Kit 中的标签,这似乎不存在。卫生署!
使用位图纹理作为对象上的字母,实际上作为精灵,Sprite Kit 处理得最好。这将涉及使用位图字体生成器,例如 Whirlwind 在评论中指出的优秀 BMGlyph。
这并不容易,因为编码部分会更加劳动密集,但您应该通过这种方式获得绝对最佳的性能。
您仍然可以交换字母,但您需要将它们视为纹理的子部分而不是字母。将每个字母在纹理中的位置分配给易于记忆的内容的数组或字典将既高效又易于使用。但设置起来需要大量劳动。比 SKLabelNode
更重要或者,您可以疯狂地使用代码创建纹理,方法是在虚拟对象上使用 SKLabelNode,然后 "rendering" 或 "drawing" 将其添加到纹理,然后使用该纹理( s) 将每个字母放到 objects/sprites 上。类似于 BMGlyph 的工作方式,但更耗时且更不灵活。
BMGlyph 是速度和易用性的最佳结合,它也有一些非常漂亮的效果来创建漂亮的文本。