2009-07-26 159 views
1

我使用cocos2d为iPhone和在我的游戏中我使用一个精灵作为静态背景图像。雪碧背景

我注意到,当删除添加精灵的代码时,帧率从〜30fps变为超过40fps。是否有任何其他方式显示更便宜的静态背景?我根本没有移动背景精灵。

现在的代码:

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

cocos2d允许使用压缩纹理(pvrtc)吗?如果是这样,那么去那条路。内存带宽是一个巨大的问题,通常是瓶颈。 – Till 2009-11-13 20:13:01

回答

1

不是一个简单的问题,就像每一个涉及cocos2d的性能问题。大图像总是需要CPU来渲染。您只能降低它以使性能可以接受(稳定30 fps是一个好结果)

pretty good advices由原始开发者给出。

从我自己的经验来看,我更喜欢使用彩色填充背景与小精灵使用纯色图像背景。重复元素也应该use single texture与不同的精灵。

将纹理质量降低到16位也可以提供帮助。

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

如果您提供更多信息,如附加背景本身,我可以对主题更具体。

+0

我想你提供了很好的例子来优化那些可以对其他许多人有用的例子。我想我的问题是不是。将位图定义为几乎不占用资源的背景没有神奇的方法。 – 2009-07-31 08:02:16

0

我建议将所有的精灵转换为AtlasSprite。这样你就有一个AtlasSpriteManager加载背景文件一次,当你需要自己的精灵时,它只是裁剪图像。 AtlasSprite通常比传统的Sprite更快。