私はCocos2Dを初めて使用しています。Cocos2D CCSpriteに関する質問はありますか?
次のようなコードを使用して2つのスプライトを作成すると、テクスチャ「alien.png」がメモリに2回ロードされますか?それとも、1つのコピーしか保存せず、OpenGLテクスチャを1つしか作成しないのですか?
sp1=[CCSprite spriteWithFile:@"alien.png"];
sp2[CCSprite spriteWithFile:@"alien.png"];
私はCocos2Dを初めて使用しています。Cocos2D CCSpriteに関する質問はありますか?
次のようなコードを使用して2つのスプライトを作成すると、テクスチャ「alien.png」がメモリに2回ロードされますか?それとも、1つのコピーしか保存せず、OpenGLテクスチャを1つしか作成しないのですか?
sp1=[CCSprite spriteWithFile:@"alien.png"];
sp2[CCSprite spriteWithFile:@"alien.png"];
あなたは(それがオープンソースだということを忘れないでください、あなたはすべての方法をドリルダウンすることができます)Cocos2Dが実装されている方法を見てみると、あなたは[CCSprite spriteWithFile:@"alien.png"]
は/キャッシュのロードに[[CCTextureCache sharedTextureCache] addImage: filename];
を使用していることがわかりますテクスチャCCTextureCacheシングルトンのaddImage
メソッドは、テクスチャがすでにキャッシュされているかどうかをチェックし、テクスチャがキャッシュされていない場合にのみ、指定されたパスからテクスチャをロードし始めます。さて、テクスチャがキャッシュされた状態で、画面上に何回描画するかは関係ありません。テクスチャを複数回メモリにロードすることはありません。
ええ、Cocos2Dはそう簡単です。メモリ使用量をきめ細かく保ちます。クラス名を右クリックすると、「定義にジャンプ」が表示されます。これをクリックすると、ソースに直接ジャンプし、かなり冗長に文書化されたコードをスキャンできます。 –
回答ありがとう –