1

通过为我所有的游戏内动画预先设置 strong SKActions 是 Sprite Kit 缓存的实际图像数据以供将来使用。我想了解的是,如果我将所有动画设置为保留SKAction的 s 是否还有预加载SKTextureAtlas它们最初来自的任何点,我的想法是否定的,因为SKActions 的图像已经加载到内存中?

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 Adventure Example 中对此进行了猜测,尽管作者使用了很多(es),但他们在任何代码中SKTextureAtlas都没有做任何事情。preloadTextureAtlases

4

1 回答 1

1

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

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

于 2014-03-21T10:00:06.310 回答