所以我在我的游戏中有一个场景显示关卡,就像任何其他有关等级的游戏一样,我将SKSpriteNode子类化为自定义关卡按钮并在此子类中添加一个SKLabelNode以显示关卡标题(关卡1级,关卡2 .....)。问题是我有很多绘制调用,因为每个SKLabelNode呈现为将它们组合成图集的一个纹理瞬间。我想知道是否有人可以帮我减少这些抽奖电话。我不想使用Glyph设计师,因为这个游戏将会有很多不同的语言,比如日语和更多。 有什么建议?
-(void)setText: (NSString *)text{
_label = [SKLabelNode labelNodeWithFontNamed:@"CooperBlack"];
_label.text = text;
_label.fontColor = [UIColor blackColor];
_label.fontSize = 11;
_label.zPosition = 2;
_label.verticalAlignmentMode = SKLabelVerticalAlignmentModeCenter;
_label.position = CGPointMake(0, 0);
[self addChild: _label];
}
答案 0 :(得分:2)
根据您正在做什么以及何时做,您可以在运行时将标签的内容渲染为纹理(预加载/缓存),然后以您喜欢的任何方式对其进行操作。
SKLabelNode *theThingToBecomeATexture;
//OR
SKSpriteNode *theThingToBecomeATexture;
SKTexture *theTexture = [theView textureFromNode:theThingToBecomeATexture];
但我的后续问题或评论将是:我很难相信您在屏幕上显示几十个标签节点时遇到了性能问题。如果你试图同时分配并初始化它们中的一部分,我可以理解你遇到负载峰值,在这种情况下,我会预加载它们,或者不在主线程上分配它们。