2012-03-28 8 views
0

Ich brauche einige Empfehlungen, wie Sie besser mit den gleichen Sprites mit Cocos2d arbeiten.Arbeiten mit den gleichen Sprites mit Cocos2d

So verbessern Sie die Anwendungsleistung und Speichernutzung mit mehr als 10 exakt die gleichen Sprites auf dem Bildschirm.

Die einzige Verbesserung, die ich gefunden habe, ist sie nicht wieder in dem Speicher zu laden, aber so etwas wie diese CCSprite *newSprite = [CCSprite spriteWithTexture:[oldSprite texture]];

Antwort

2

ich Sie CCBatchnode verwenden empfehlen verwenden, können Sie nur 1 Bild in Texturspeicher laden und wiederverwenden.

http://www.raywenderlich.com/1271/how-to-use-animations-and-sprite-sheets-in-cocos2d

Ray hat ein großes Tutorial hier erklärt spritesheets.

+0

* CCBatchnode, Sie können nur 1 Bild in den Texturspeicher laden und wiederverwenden. * Ist es nicht das ** selbe ** was mache ich? Ich habe Array mit gebräuchlichen Texturen erstellt und dann ein neues Sprite mit [CCSprite spriteWithTexture: [** needTextureSprite texture **]]; – Buron

+1

CCBatchnode behandelt alle Zeichenmethoden für alle untergeordneten Elemente. CCSprite macht etwa 6 Draw-Methoden pro Sekunde, CCBatchnode 10, wenn Sie jedoch 10 CCSprites haben, das sind 60 Draw-Methoden, wobei 10 CCSprites Kinder von CCBatchnode sind, haben Sie immer noch nur 10 Draw-Methoden aufgerufen. Es ist viel schneller. Sie können einfach ein Sprite mit [CCSprite spriteWithSpriteFrameName: @ "myFrame.png"] aufrufen, es ist schneller und einfacher imo. Wenn Sie unbedingt SpriteWithTexture verwenden müssen, vergessen Sie nicht, den Anzeigerahmen einzustellen. Drill down in SpriteWithTexture: Überprüfen Sie, was es tut. – Bongeh

+0

Aha, danke wirklich für eine Erklärung! – Buron