Objective c 带SKLabelNode的文本工具包

Objective c 带SKLabelNode的文本工具包,objective-c,sprite-kit,textkit,Objective C,Sprite Kit,Textkit,似乎无法将文本工具包、属性字符串和布局管理器与Sprit工具包SKLabelNode一起使用 我想知道Sprite Kit游戏如何显示需要分成多行和属性字符串的长文本?SKLabelNode不支持属性字符串和换行 如果你需要的话,恐怕要由你来实施。您可以使用多个标签节点显示多条线,还可以编写一个自定义工具,将属性、换行符字符串分割为多个标签,并相应地按行间距和颜色排列。也许这样的图书馆已经存在了 另一种方法是在SKView的顶部显示常规文本视图。您可能希望签出一个AttributedLabelN

似乎无法将文本工具包、属性字符串和布局管理器与Sprit工具包SKLabelNode一起使用


我想知道Sprite Kit游戏如何显示需要分成多行和属性字符串的长文本?

SKLabelNode不支持属性字符串和换行

如果你需要的话,恐怕要由你来实施。您可以使用多个标签节点显示多条线,还可以编写一个自定义工具,将属性、换行符字符串分割为多个标签,并相应地按行间距和颜色排列。也许这样的图书馆已经存在了


另一种方法是在SKView的顶部显示常规文本视图。

您可能希望签出一个AttributedLabelNode,这是一个支持属性字符串的SKLabelNode实现


从iOS 11开始,SKLabelNode似乎确实支持属性字符串和自动换行。新属性已添加到类的文档中:

请注意:SpriteKit更新有引入错误新功能的历史,因此您可能需要自己测试这些功能


关于SKLabelNode性能的注意事项:

有一些建议建议您应该将标签转换为纹理,并使用SKSpriteNodes渲染它们以获得更好的性能。我不知道这到底有多大的不同,但是对于那些文本永远不会改变的小标签来说,这可能是有意义的

:


我讨厌SpriteKit,我需要的每一个功能,它都没有:-(那就不要使用它或找到解决方法。这些东西不是SK特有的,因为我记得cocos2d也不支持属性字符串。我必须找到解决方法:-)。我的论点是SpriteKit,特别是这个SKLabelNode缺少很多基本功能,例如,我甚至不能在其中添加“\n”。在渲染引擎中,速度是至关重要的。检测线缠绕是耗时的,如果你认为它需要重新创建标签的纹理。如果我没记错的话,cocos2d的CCLabelTTF也不能做换行。好的,很高兴了解背景,他们以牺牲功能为代价优化了速度。
- (SKTexture *)textureFromNode:(SKNode *)node;