2014-03-30 78 views
1

我正嘗試在遊戲開始之前預先加載我正在使用的圖像。在cocos2d v3中預載圖像

但是,我環顧四周,我只是找到這條線是寫在cocos2d v2。

[[CCTextureCache sharedTextureCache ] addImage:@"objects.png" ]; 

如何預加載cocos2d v3中的圖像?

回答

1

在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

1

其實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"]; 
} 
+1

看看到pmpod的答案。 [CCTexture textureWithFile:fileName]是正確的方式,因爲它在引擎蓋下調用[[CCTextureCache sharedTextureCache] addImage:fileName]。 – Lion

1

試試這個:

cocos2d::Director::getInstance()->getTextureCache()->addImage("objects.png");