cocos2d - 替换缓存的精灵图像

时间:2012-02-21 23:25:05

标签: cocos2d-iphone

我是cocos2d的新手。我一直在关注我已经开始工作的教程,但是当我更新图像时,我曾经通过删除并从资源文件夹中替换它来拍摄火球,图像不再呈现。更换图像时我该怎么做?

在我交换图像之前:

  

CCSprite * projectile = [CCSprite spriteWithFile:@“Projectile.png”   rect:CGRectMake(0,0,20,20)];

交换图片后:

  

CCSprite * projectile = [CCSprite spriteWithFile:@“Fireball.png”rect:CGRectMake(0,0,20,20)];

我是否需要以某种方式删除缓存并重新添加图像?

编辑:

我在代码下面添加了这一行并且有效:

  

[projectile setTexture:[[CCTextureCache sharedTextureCache]   addImage:@ “Fireball.png”]];

奇怪的是我必须添加一行新代码来替换图像。

1 个答案:

答案 0 :(得分:0)

我发现有时候我需要为更新后的纹理进行清理和构建,最终使其成为应用程序的包...(我怀疑当应用程序运行时更改资源时会发生这种情况,但坦率地说我已经失去了太多时间来调查)。现在我在改变资源时事实上要清理和构建。

我不确定这是一个' cocos2d'讨论,而是一个Xcode。在应用程序执行期间,cocos2d纹理缓存完全在内存中构建。这是一种机制,1)有助于保持较小的内存占用,2)还提升性能,因为如果你不清除缓存,纹理文件只加载一次。另一方面,Xcode会将所有文件的副本保存在多个位置。通过清洁'在构建时,您可以确保删除以前版本的文件,并将所有当前资源(包括纹理)放置在适当的位置,以使开发环境正常运行。