我正在使用 cocos2d 在我的 iPad 上玩一个小游戏,我遇到了一些性能问题。我有一个 512x512 的图像平铺作为我的背景。这给了我大约 40fps 和 20 个 Sprite (在 CCSpriteBatchNode
中),背景代码是这样的:
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];
如果我删除背景,我将获得稳定的 60fps。
我已经尝试将图像转换为 PVRTC 并且确实提供了额外的 fps 或两个。我使用 1024x768 图像而不是平铺版本获得相同的帧率。
因为我的背景将保持轴对齐、未缩放且通常是静态的。我认为应该有一种比将其作为常规 CCSprite
更快的绘制方法?
最佳答案
原来 cocos2d 以神秘的方式移动。将背景添加到原本为空的包装 CCSprite
可使帧率恢复到 60:
CCSprite *spback = [(CCSprite*)[CCSprite alloc] init];
[self addChild:spback];
CCSprite *sp = [CCSprite spriteWithFile:@"Background.png"];
sp.position = ccp(1024/2, 768/2);
[spback addChild:sp];
关于iphone - 如何在cocos2d中快速绘制背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3899903/