2012-02-21 58 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