gpt4 book ai didi

ios - Cocos2d for iPhone 中高效的逐帧动画

转载 作者:行者123 更新时间:2023-12-01 19:15:02 25 4
gpt4 key购买 nike

我的 cocos2d iPhone 游戏中有一些动画 Sprite 。动画 Sprite 是指运行 CCRepeatForever Action 的 CCSprite。重复 Action 在来自 png spritesheet 和相关 plist 坐标文件的动画帧中循环。

虽然我只有几个独特的动画,但我有许多具有相同动画的动画 Sprite 。例如,我可能有 30 个动画足球运动员在屏幕上跑来跑去,他们都在运行 CCRepeatForever Action 。 在这种情况下,预加载和重用动画的有效方法是什么?

我目前的方法是在游戏启动时创建重复 Action 。然后,当我想创建一个新的动画 Sprite 时,我运行 复制 对 Sprite 的预加载重复 Action 。我质疑这是否非常有效,因为动画有时会在启动时结结巴巴。非常感谢所有反馈!我对几乎任何架构/设置都持开放态度。

编辑 - 更多信息 :我想知道“预先复制”这些 Action 是否可行?当游戏加载时,我会用重复 Action 的副本填充队列。然后我会根据需要将它们弹出。当队列的大小低于某个阈值时,我会在后台线程上重新填充它。

最佳答案

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

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

不用担心用 CCAnimate 优化(频繁)创建 CCRepeatForever 以及您正在使用的任何其他东西,除非您有 运行分析器测量并确认这正是你遇到的问题。我有 99.9% 的信心认为口吃问题与创建和运行操作无关。

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

关于ios - Cocos2d for iPhone 中高效的逐帧动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13903766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com