我是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”]];
奇怪的是我必须添加一行新代码来替换图像。
答案 0 :(得分:0)
我发现有时候我需要为更新后的纹理进行清理和构建,最终使其成为应用程序的包...(我怀疑当应用程序运行时更改资源时会发生这种情况,但坦率地说我已经失去了太多时间来调查)。现在我在改变资源时事实上要清理和构建。
我不确定这是一个' cocos2d'讨论,而是一个Xcode。在应用程序执行期间,cocos2d纹理缓存完全在内存中构建。这是一种机制,1)有助于保持较小的内存占用,2)还提升性能,因为如果你不清除缓存,纹理文件只加载一次。另一方面,Xcode会将所有文件的副本保存在多个位置。通过清洁'在构建时,您可以确保删除以前版本的文件,并将所有当前资源(包括纹理)放置在适当的位置,以使开发环境正常运行。