iPhone版Cocos2d中高效的逐帧动画



我的cocos2d iPhone游戏中有一些动画精灵。我所说的动画精灵是指一个运行CCRepeatForever操作的CCSprite。重复操作会在来自png精灵表和相关plist坐标文件的动画帧中循环。

虽然我只有几个独特的动画,但我有很多动画精灵都有相同的动画。例如,我可能有30名动画足球运动员在屏幕上奔跑,所有人都在执行CCRepeatForever动作在这种情况下,预加载和重用动画的有效方法是什么

我目前的方法是在游戏开始时创建重复动作。然后,当我想创建一个新的动画精灵时,我会在精灵上运行预加载重复动作的副本。我怀疑这是否非常有效,因为动画在启动时有时会断断续续。非常感谢所有反馈!我对任何架构/设置都持开放态度。

编辑-更多信息:我想知道"预复制"操作是否可行?当游戏加载时,我会用重复动作的副本填满队列。然后我会根据需要把它们扔掉。当队列的大小低于某个阈值时,我会在后台线程上重新填充它。

确保使用的是纹理图集,并预加载所有带有动画的纹理。理想情况下,您会希望使用.pvr.ccz格式,因为它的加载速度比PNG快得多。

您所做的其他一切可能对帧速率几乎没有影响。口吃很可能是由按需加载纹理引起的,或者与音频缓冲区相同(即在没有预加载的情况下播放音频)。

不要担心使用CCAnimate和您正在使用的任何其他工具优化CCRepeatForever的(频繁)创建,除非您已经运行探查器来测量并确认这正是您遇到的问题。我有99.9%的信心口吃问题与创造&正在运行的操作。

加载资源是迄今为止游戏过程中最耗时的任务,因此预加载所有资源文件至关重要。在你的情况下,你只需要确保纹理在内存中。

对于逐帧动画,请使用CCAnimation和CCAnimationCache。

最新更新