如何使用精灵优化我的内存使用情况......在SpriteFrameCache和SpriteBatchNode之间

时间:2013-06-13 05:59:28

标签: ios objective-c cocos2d-iphone

我已经看到了plistpng atlasses在我正在开发的游戏中的用法。然而,我注意到保持60 fps的轻微性能快速(加速),并且对于旁注,我的应用程序此刻还没有崩溃。

事情是我注意到我使用SpriteFrameCacheplist来做CCactions动画和我的角色(精灵)。然而有些角色一直在使用SpriteBatchnode,但这是偶然的,因为我对游戏的深度开发相对较新,我之前没有注意到这种差异,它们都有效,但我觉得两者都是同样,它只是一个比另一个更简单的实现方式,我想也许它是在早期版本中开发的....

所以我的问题是。这两者有区别吗?使用SpriteFrameCache而不是SpriteBatchNode,我的游戏会受益吗?

感谢您的帮助。

仅供参考:这不会减慢我的开发速度,这只是一个问题,因为我知道最后我的游戏结束时可能会想要优化我的游戏性能。

1 个答案:

答案 0 :(得分:0)

批处理节点在一次绘制调用中绘制所有子精灵。

Sprite框架包含对纹理的引用,并在纹理中定义要绘制的区域。缓存允许您按名称访问精灵帧。

两者都是不同的概念,它们不是彼此的替代品。您可以使用精灵帧来创建精灵或精灵帧动画。除了sprite批处理之外,您还可以使用相同的纹理加速渲染两个或更多精灵。

请注意,如果您使用只有一个子精灵的批处理节点,那么与没有批处理节点的渲染没有任何不同,因为两者都会创建一个绘制调用,因此使用批处理节点没有任何积极影响