我有一个充满精灵的场地(30x30)。
在创建任何精灵之前,我使用以下代码预加载纹理图集:
- (void)preloadAllAtlases
{
BGLog();
_tilesAtlas = [SKTextureAtlas atlasNamed:@"Tiles"];
_tilesTextures = [NSMutableDictionary new];
__weak typeof (shared) weakSelf = self;
[SKTextureAtlas preloadTextureAtlases:@[_tilesAtlas]
withCompletionHandler:^
{
for (NSString *textureFullName in weakSelf.tilesAtlas.textureNames) {
NSString *textureName = [textureFullName componentsSeparatedByString:@"@"][0];
weakSelf.tilesTextures[textureName] = [SKTexture textureWithImageNamed:textureName];
}
}];
}
此方法从singleton调用一次 - 在appicationDidFinishLaunchingWithOptions中。
到时候我从SKTextures生成SKSpriteNodes并将复合节点(包含所有SKSpriteNodes的节点)添加到SKScene。但是......显示/渲染192个精灵需要1到1.5秒。使用“Time profiler”,我发现[SKSpriteNode spriteNodeWithTexture:]需要很长时间才能使用。
截图:
有没有办法加速精灵创作?
THX。