0

私は現在、次のCCSpriteようなものを作成しています。

CCSprite *s = [CCSprite spriteWithFile:@"image.png"];

このスプライトは、CCLayer比較的頻繁に使用されるの背景画像です。次の使用はCCTextureCacheより効率的ですか?

CCTexture2D *t = [[CCTextureCache sharedTextureCache] addImage:@"image.png"];
CCSprite *s = [CCSprite spriteWithTexture:t];
4

2 に答える 2

3

いいえ。内部的には、(CCSpriteだけでなく)画像をテクスチャとして使用するすべてのメソッドは、CCTextureCacheにテクスチャを追加します。

addImageを直接使用する唯一の理由は、特定のテクスチャをプリロードして、そのテクスチャを使用するノードが最初に表示されてもゲームプレイ中にラグが発生しないようにする場合です。

于 2012-05-30T10:42:23.660 に答える
1

まず、spriteWithFile:メソッドのコードを見ると、テクスチャキャッシュに画像が見つからない場合でも、画像が追加されていることがわかります。

次に知っておくべきことは、メモリ使用量を減らすためにアートをアトラスに保存する場合(たとえば、20枚の異なる画像を含むアトラス2048x2048ピクセル)、spriteWithTexture:は巨大なアトラス(2048x2048ピクセル)テクスチャ全体を含むスプライトを作成することです。

于 2012-05-30T09:10:23.513 に答える