2 Stimmen

Cocos2D CCSprite Frage?

Ich bin neu in Cocos2D und habe eine Frage zum Laden von Texturen.

Wenn ich einen Code wie den folgenden verwende, um zwei Sprites zu erstellen, wird dann die Textur "alien.png" zweimal in den Speicher geladen? Oder speichert er nur eine Kopie und erstellt nur eine OpenGL-Textur?

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

3voto

Rad'Val Punkte 8535

Wenn Sie sich ansehen, wie Cocos2D implementiert ist (vergessen Sie nicht, dass es ein Open-Source-Programm ist und Sie sich jede Methode genau ansehen können), werden Sie feststellen, dass [CCSprite spriteWithFile:@"alien.png"] utilise [[CCTextureCache sharedTextureCache] addImage: filename]; um die Textur zu laden/cachen. Die addImage Methode des CCTextureCache Singletons prüft, ob die Textur bereits zwischengespeichert ist, und nur wenn dies nicht der Fall ist, wird sie vom angegebenen Pfad geladen. Nun, mit der Textur zwischengespeichert, es spielt keine Rolle, wie oft Sie es auf dem Bildschirm zeichnen, werden Sie nicht die Textur im Speicher mehr als einmal zu laden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X