2012-02-21 128 views
0

我是新来的cocos2d。我一直在关注我正在工作的教程,但是当我更新用于通过删除资源文件夹并将其替换的火球图像时,图像不再呈现。更换图像时我需要做些什么?cocos2d - 替换缓存的精灵图像

在我交换图像:

CCSprite *弹丸= [CCSprite spriteWithFile:@ “Projectile.png” RECT:CGRectMake(0,0,20,20)]。

交换图像之后:

CCSprite *弹丸= [CCSprite spriteWithFile:@ “Fireball.png” 矩形:CGRectMake(0,0,20,20)]。

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

编辑:

我说我下面的这行代码,它的工作:

[弹丸的SetTexture:[CCTextureCache sharedTextureCache] addImage:@ “Fireball.png”]];

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

回答

0

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

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

+0

我不知道在cocos2d中是否有一种开发模式,它在拾取任何图像精灵变化直到它进入生产模式。 – oprogfrogo 2012-02-23 02:55:06

+0

@oprogfrogo:编辑我的原始答案 – YvesLeBorg 2012-02-23 12:28:04