我正嘗試在遊戲開始之前預先加載我正在使用的圖像。在cocos2d v3中預載圖像
但是,我環顧四周,我只是找到這條線是寫在cocos2d v2。
[[CCTextureCache sharedTextureCache ] addImage:@"objects.png" ];
如何預加載cocos2d v3中的圖像?
我正嘗試在遊戲開始之前預先加載我正在使用的圖像。在cocos2d v3中預載圖像
但是,我環顧四周,我只是找到這條線是寫在cocos2d v2。
[[CCTextureCache sharedTextureCache ] addImage:@"objects.png" ];
如何預加載cocos2d v3中的圖像?
在cocos2d-v3中,您可以不使用CCTextureCache,而只需使用CCTexture(以前的CCTexture2D)textureWithFile:initializer。
你的代碼是這樣:
CCTexture* texture = [CCTexture textureWithFile:@"objects.png"];
如果我理解正確的文檔,它會緩存紋理文件(見CCTexture extureWithFile:)。 因此,如果您之前已經加載了紋理,它將會在緩存中,並且之前創建的紋理將由上面的代碼返回。
還有這裏的另一個「變通」解決方案:https://gamedev.stackexchange.com/questions/72713/preload-in-cocos2d-v3
其實CCTextureCache仍然存在在cocos2d版本3.x但是如果你只導入「cocos2d.h」,它就不能直接訪問。要訪問它,你必須導入「CCTextureCache.h」。
試試這個代碼:
#import "CCTextureCache.h"
- (void) preloadImages
{
[[CCTextureCache sharedTextureCache] addImage:@"image1.png"];
[[CCTextureCache sharedTextureCache] addImage:@"image2.png"];
[[CCTextureCache sharedTextureCache] addImage:@"image3.png"];
[[CCTextureCache sharedTextureCache] addImage:@"image4.png"];
[[CCTextureCache sharedTextureCache] addImage:@"image5.png"];
}
試試這個:
cocos2d::Director::getInstance()->getTextureCache()->addImage("objects.png");
看看到pmpod的答案。 [CCTexture textureWithFile:fileName]是正確的方式,因爲它在引擎蓋下調用[[CCTextureCache sharedTextureCache] addImage:fileName]。 – Lion