2011-07-24 15 views
2

私はCocos2Dを初めて使用しています。Cocos2D CCSpriteに関する質問はありますか?

次のようなコードを使用して2つのスプライトを作成すると、テクスチャ「alien.png」がメモリに2回ロードされますか?それとも、1つのコピーしか保存せず、OpenGLテクスチャを1つしか作成しないのですか?

sp1=[CCSprite spriteWithFile:@"alien.png"]; 
sp2[CCSprite spriteWithFile:@"alien.png"]; 

答えて

3

あなたは(それがオープンソースだということを忘れないでください、あなたはすべての方法をドリルダウンすることができます)Cocos2Dが実装されている方法を見てみると、あなたは[CCSprite spriteWithFile:@"alien.png"]は/キャッシュのロードに[[CCTextureCache sharedTextureCache] addImage: filename]; を使用していることがわかりますテクスチャCCTextureCacheシングルトンのaddImageメソッドは、テクスチャがすでにキャッシュされているかどうかをチェックし、テクスチャがキャッシュされていない場合にのみ、指定されたパスからテクスチャをロードし始めます。さて、テクスチャがキャッシュされた状態で、画面上に何回描画するかは関係ありません。テクスチャを複数回メモリにロードすることはありません。

+0

ええ、Cocos2Dはそう簡単です。メモリ使用量をきめ細かく保ちます。クラス名を右クリックすると、「定義にジャンプ」が表示されます。これをクリックすると、ソースに直接ジャンプし、かなり冗長に文書化されたコードをスキャンできます。 –

+0

回答ありがとう –

関連する問題