【问题标题】:What is the best approach for CCSpriteBatchNode and texture sheets in a Cocos2D game sceneCocos2D游戏场景中CCSpriteBatchNode和纹理表的最佳方法是什么
【发布时间】:2012-04-26 12:04:44
【问题描述】:

我正在修改我在Learn Cococs2D 上找到的一些教程,发现每当我在一个类中使用多个 CCSpriteBatchNode 时,帧速率都会下降。

阅读了一下,我了解到一个 CCSpriteBatchNode 一次只能接受 1 个纹理表,这对关卡设计造成了一些限制(精灵表最大可以为 2048x2048 像素discussion)。虽然有一些扩展似乎可以克服这个限制(我还不敢尝试)CCBigImage

我正在尝试遵循一个文件方法并将我的所有图像加载到一个 CCSpriteFrameCache 中,但我在 programming guides 上没有找到太多关于此的信息。

1 的 ShootEmUp 示例中,方法是在 ParallaxNode 以及 EnemyCache 等其他类中使用 CCSpriteBatchNode(在链接 book source code link 上的第 8 章文件夹中找到源代码)

虽然我在 cocos2d-iphone.org 论坛上进行了一些研究,并发现了以下主题,其中 版主建议只将 CCSpriteBatchNode 的一个实例添加到根层 forum topic。 p>

我现在有点困惑。我注意到的一件事是遵循1 方法(多个实例)帧速率不是最佳的。你有类似的经历吗?你如何解决这个问题?

是否有多个 CCSpriteBatchNode? 每个级别或多个纹理表?

非常感谢您的阅读:)

【问题讨论】:

    标签: ios cocos2d-iphone textures ccsprite frame-rate


    【解决方案1】:

    我不认为你的帧率问题是由于多个 CCSpriteBatchNode 的......我在一个类中使用了多个 CCSpriteBatchNode,我怀疑这是问题所在。但是,您只能拥有一个 CCSpriteFrameCache。您可能需要发布一些代码才能找到问题的根源

    【讨论】:

    • 当然我会在今天晚些时候发布一些代码。我试图实现上面所说的(CCSpriteBatchNode 的一个共享实例),但有点奇怪,因为它在模拟器上以大约 20fps 的速度运行,而在我的第四代 iPod 上以大约 58fps 的速度运行。我想在发布代码之前完成一些测试。同时,你说你只能有一个CCSpriteFrameCache,是的CCSpriteBatchNode?你读过论坛主题中的帖子吗?他们为什么这么说? (我只是想理解..)非常感谢您的回答:)
    • 我现在才接受答案,因为我花了一些时间来理解 CCSpriteFrameCache 和 CCSpriteBatchNode 的作用,我在这里找到了一个非常有用的指南,它也有帮助:allseeing-i.com/Performance-tips-for-Cocos2d-for-iPhone
    猜你喜欢
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    相关资源
    最近更新 更多