2009-07-26 7 views
1

J'utilise cocos2d pour iphone et dans mon jeu j'utilise un sprite comme image de fond statique.Arrière-plans Sprite

J'ai remarqué que lors de la suppression du code pour l'ajout de l'image-objet, le framerate passe de ~ 30fps à plus de 40fps. Est-ce un autre moyen de montrer un arrière-plan statique moins cher? Je ne bouge pas du tout le sprite d'arrière-plan.

au code en ce moment:

background = [Sprite spriteWithFile:@"t1_5.jpg"]; 
[self addChild:background z:0]; 
background.position = ccp(240, 160); 
+0

Est-ce que cocos2d permet l'utilisation de textures compressées (pvrtc)? Si oui, suivez cette route. La bande passante mémoire est un problème énorme et généralement le goulot d'étranglement. – Till

Répondre

1

Pas une question facile, comme toute question qui concerne la performance Cocos2D. Les grandes images prennent toujours le processeur pour le rendu. Vous ne pouvez le réduire à rendre acceptable la performance (stable 30 images par seconde est un bon résultat)

Il y a pretty good advices donné par le développeur d'origine. D'après ma propre expérience, je préfère utiliser un arrière-plan rempli de couleurs avec de petits sprites plutôt qu'un fond d'image solide. Les éléments répétitifs doivent également use single texture avec différents sprites. Réduire la qualité de la texture à 16 bits peut également aider.

[Texture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA4444]; // add this line at the very beginning 

Je peux être plus précis sur le sujet si vous fournissez plus d'informations comme attacher l'arrière-plan lui-même.

+0

Je pense que vous avez donné de bons exemples pour optimiser ce qui peut être utile pour beaucoup d'autres. Et je suppose que la réponse à ma question est non. Il n'y a pas de façon magique de définir un bitmap comme un arrière-plan qui ne prend presque aucune ressource. –

0

Je recommande de convertir tous vos Sprites en AtlasSprite. De cette façon, vous avez un AtlasSpriteManager qui charge le fichier d'arrière-plan une fois, et lorsque vous avez besoin des sprites eux-mêmes, il ne fait que couper l'image. AtlasSprite est généralement plus rapide que l'ancien Sprite.

Questions connexes