我在从一个版本转换时遇到了轻微延迟(滞后)的问题SKScene
到另一个。通过注释掉各种代码,我将其范围缩小到SKLabelNode
,我的猜测是,这就是它在调用时加载/缓存字体,这会导致在声明新字体时出现小的延迟/口吃SKScene
.
有没有其他人注意到这一点,当您只使用一个时,它不太明显SKScene
(就像默认模板一样),因为速度减慢只是在通常的启动延迟中消失了。有谁知道解决这个问题的方法,有没有办法预加载字体?我想我可以加载字体UIViewController
在启动时看看我是否可以使用SKScene
,有人有什么想法吗?
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
[self setScore:0];
[self setBackgroundColor:[SKColor blackColor]];
SKLabelNode *labelNode = [SKLabelNode labelNodeWithFontNamed:@"System"];
[labelNode setText:@"00000"];
[labelNode setFontSize:20.0];
[labelNode setPosition:CGPointMake(CGRectGetMidX(self.frame),500)];
[labelNode setName:@"SCORE"];
[labelNode setAlpha:1.0];
[self addChild:labelNode];
[self setScoreLabel:labelNode];
...
延迟取决于字体的加载。最好预加载字体、声音和您打算使用的任何其他资源,这样您在第一次实际使用时就不会出现延迟。
您可以使用以下命令在您的设置中预加载:
SKLabelNode *preload = [SKLabelNode labelNodeWithFontNamed:@"System"];
[preload setText:@"anything"];
正如评论中所指出的,仅当使用 iOS 无法提供的字体时才需要预加载。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)