1

所以我的游戏中有一个显示关卡的场景,就像任何其他有关卡的游戏一样,我将 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];

}

4

1 回答 1

2

根据您所做的事情和时间,您可以在运行时将标签的内容渲染到纹理中(预加载/缓存),然后以您喜欢的任何方式操作它们。

SKLabelNode *theThingToBecomeATexture;
   //OR
SKSpriteNode *theThingToBecomeATexture;

SKTexture *theTexture = [theView textureFromNode:theThingToBecomeATexture];

但我的后续问题或评论是:我很难相信您在屏幕上显示几十个标签节点会遇到性能问题。如果您尝试同时分配和初始化其中的一些,我可以理解您遇到负载峰值,在这种情况下,我会预加载它们,或者不在主线程上分配它们。

于 2014-07-29T20:25:44.820 回答