Wie zeichnet man einen hintergrund schnell in cocos2d?
Ich bin liebäugelt mit einem kleinen Spiel auf meinem iPad mit cocos2d und ich habe in einige Leistung sorgen. Ich habe ein 512x512 Bild Fliesen als mein hintergrund. Das gibt mir rund 40fps mit 20 sprites (in ein CCSpriteBatchNode
), wird der code für den hintergrund ist dieser:
CCSprite *background;
background = [CCSprite spriteWithFile:@"oak.png" rect : CGRectMake(0,
0,
size.width,
size.height)];
background.position = ccp( size.width /2 , size.height/2 );
ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT};
[background.texture setTexParameters: ¶ms];
Wenn ich entfernen Sie die hintergrund-ich bekomme eine Feste 60fps.
Habe ich versucht, Konvertierung des Bildes in PVRTC und das hat mehr fps, oder zwei. Ich bekomme identische Frameraten mit einem 1024x768 Bild statt der gekachelten version.
Da mein hintergrund bleibt-Achse ausgerichtet, nicht skalierten und in der Regel statisch. Ich denke, es sollte ein schneller Weg, um es zu zeichnen, als wenn Sie als normale CCSprite
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellt sich heraus, cocos2d bewegt sich auf mysteriöse Weise. Hinzufügen hintergrund für eine ansonsten leere Verpackung
CCSprite
wird die framerate wieder bis auf 60:Credits für dieses Bild geht an yaoligang auf der cocos2d-Foren.
Zuerst von allen, haben Sie diese auf Ihrem iPad oder der simulator? Es gibt in der Regel einen großen performance-Unterschied gibt. Nach suchen in Foren, wo Leute ähnliche Probleme haben, würde ich versuchen, die Spaltung der gesamten 1024x768 Bild in 2 Bilder, 512x768. Hoffe, das hilft.
Ich habe versucht, das selbst mit einer 1024x768 hintergrund und bekommen über 60fps sogar im debug mit einem iPad. Vielleicht stellen Sie sicher, dass Ihr Bild nicht extra Kanäle oder alpha?