如果您预先设置SKAction,您需要预先加载SKTextureAtlas吗?

时间:2014-03-20 16:38:22

标签: ios sprite-kit skaction sktextureatlas

通过为我的所有游戏动画预先设置强SKAction s,动画是由Sprite Kit缓存的实际图像数据,以备将来使用。我想要理解的是,如果我将所有动画设置为保留SKAction s还有预加载它们最初来自的SKTextureAtlas的任何一点,我的想法不是SKAction的图像{1}}已经加载到内存中了吗?

for(NSUInteger index=1; index<=15; index++) {
    NSString *image = [NSString stringWithFormat:@"Drone_FLYING_%04ld", (long)index];
    SKTexture *texture = [SKTexture textureWithImageNamed:image];
    [[self  framesDroneFlying] addObject:texture];
}

[self setDroneFlyAction:[SKAction animateWithTextures:[self framesDroneFlying]          timePerFrame:DRONE_FLY_SPEED]];

我在Apple冒险示例中猜到了这一点,虽然作者使用了很多SKTextureAtlas个,但他们不会在任何代码中执行单preloadTextureAtlases。< / p>

1 个答案:

答案 0 :(得分:1)

要保持(地图集)纹理的缓存,请使用SKTextureAtlas预加载方法并保留对atlas对象的强引用。就这些。这样可以将所有纹理保留在内存中。

您可以保持上面的代码不变,而不是加载图像,它将在图册中查找 - 前提是您正确设置了图集(即.atlas文件夹,所有资源都作为参考而不是组,而不是添加图像文件在项目的其他地方使用相同的名称)。