SKSpriteNode需要花费太多时间从纹理创建

时间:2014-04-12 06:49:39

标签: sprite-kit skspritenode sktexture

我有一个充满精灵的场地(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:]需要很长时间才能使用。

截图: enter image description here

有没有办法加速精灵创作?

THX。

0 个答案:

没有答案