如何将CCSpriteBatchNode与CCAnimation结合起来?

时间:2012-02-27 21:35:40

标签: objective-c ios cocos2d-iphone

我一直在努力解决这个问题,我在文档或论坛或这里找不到任何好的解释,所以这里有:

我可以将CCSpriteBatchNode与CCAnimations结合使用吗?如果是这样,怎么样?你能给出一个代码示例吗?

据我所知,CCAnimation可以使用来自几个不同缓存纹理的帧来定义(CCTexture2D / CCTextureCache),但CCSpriteBatchNode只能引用一个纹理。

我想这相当于几个单独的子问题:

  1. 我可以将我作为孩子使用的精灵设置为带有CCAnimation的CCSpriteBatchNode动画吗?那还能给我批量速度优势吗?如果CCAnimation引用单独纹理上的帧,会发生错误吗?

  2. 理论上,我可以使用不同纹理的帧定义动画,因此它们必须来自不同的CCSpriteBatchNodes,对吗?或者这是不可能的?

  3. 我可以在一个CCSpriteBatchNode上有几个不同的精灵,每个精灵都调用CCAnimations,其帧在该Batch节点上定义,所有这些都来自同一个CCSpriteBatchNode的纹理?

  4. 感谢任何能花一分钟向我解释的人!

1 个答案:

答案 0 :(得分:0)

  1. 您可以为属于CCSpriteBatchNode的精灵设置动画。你所谓的“批量速度优势”,就是所做的opengl调用次数。如果所有精灵都使用相同的CCSpriteBatchNode,那么您可以减少调用次数。你的CCAnimation基本上只是在延迟的序列中播放精灵。你不能将精灵添加到不属于同一纹理的CCSpriteBatchNode。这是你可以尝试的,而不是问这个问题。

  2. 我觉得你不明白CCSpriteBatchNodes& CCAnimations工作。它们是两个不同的东西。你的动画可以引用属于不同纹理的精灵,但是如果你动画的精灵是在spritebatchnode上,那么你应该只使用具有该纹理的精灵来动画它。

  3. 。是的。

    你应该花点时间阅读cocos2d论坛以及其他教程,因为这些是基本问题。之后,您可以更轻松地进行编码。 还有几本关于cocos2d的书籍涵盖了基础知识。