2012-03-28 75 views
0

我需要一些建议如何使用Cocos2d使用相同的精灵来更好地工作。使用Cocos2d工作在相同的精灵

如何提高应用程序性能和内存使用量在屏幕上有超过10个完全相同的子画面。

唯一改善我发现的是不要再加载它们的记忆,但使用这样的CCSprite *newSprite = [CCSprite spriteWithTexture:[oldSprite texture]];

回答

2

我推荐你使用CCBatchnode,您可以加载仅1图像到纹理内存和重用。

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

雷在此具有伟大的教程解释spritesheets。

+0

* CCBatchnode,你可以只加载一个图像到纹理存储器中并重用它。*它不是** **我做了什么?我创建了常用纹理数组,然后用[CCSprite spriteWithTexture:[** needTextureSprite texture **]]创建一个新的精灵; – Buron 2012-03-28 11:38:32

+1

CCBatchnode处理所有子项的所有绘制方法。 CCSprite做了6次绘制方法,CCBatchnode做了10次,但是如果你有10个CCSprites,那60个绘制方法,10个CCSprites是CCBatchnode的子节点,你仍然只有10个绘制方法被调用。这很快。你可以使用[CCSprite spriteWithSpriteFrameName:@“myFrame.png”]轻松地调用一个精灵,它更快更轻松。 如果你绝对必须使用spriteWithTexture,不要忘记你需要设置显示框。深入研究spriteWithTexture:检查它的功能。 – Bongeh 2012-03-28 12:21:25

+0

啊哈,真的非常感谢您的解释! – Buron 2012-03-28 13:09:52