首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在cocos2d运行的游戏中消除卡顿?

如何在cocos2d运行的游戏中消除卡顿?
EN

Stack Overflow用户
提问于 2013-01-14 16:07:00
回答 2查看 454关注 0票数 0

我正在构建一个cocos2d连续运行的ios游戏,其中一个角色是动画通过一个场景运行。背景、角色脚下的地面和奔跑角色后面的栅栏以相反的方向移动,以模拟向前运动。角色本身已设置动画,以便在适当的位置运行。偶尔,其他精灵会在场景中移动。

我所有的移动(除了角色的就地动画)都发生在update方法中。

我注意到当附加的精灵经过场景时,所有移动的部分都卡顿了。当没有额外的子画面时,卡顿就会消失。

我还注意到,在iPad3 (ios 6.0.1)中几乎看不到卡顿,而在iPhone3GS (ios 6.0.1)和iPad1 (ios 5.1.1)中最明显,在iPhone4 (ios 6.0.1)上中等明显。

我不知道从哪里开始解决这个问题-我尝试删除额外的精灵的实际渲染,我也尝试删除字符后面的栅栏-但这两个更改都没有对卡顿产生任何影响。

有什么建议吗?

更新:通过运行@Fogmeister建议的时间分析器修复了这个问题。原来,我在每次更新时都执行磁盘i/o操作,以查找一些状态变量。我对此进行了优化,所有设备上的卡顿都消失了。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-14 16:27:08

您需要确定是什么占用了代码中的时间并导致了卡顿。

这似乎只是一个优化问题,因为你可以在更老、更慢的设备上看到更多的卡顿,而在新的更强大的设备上看到更少的卡顿。

使用Time Profiler仪器分析应用程序。这将告诉你时间被花费在哪里,并几乎立即将你指向正在花费时间的函数(如果不是行)。

一旦你发现了,你就可以开始优化了。

票数 2
EN

Stack Overflow用户

发布于 2013-01-14 16:44:53

你对精灵移动的代码是什么?如果您在-(void) update:(ccTime) delta {}方法中手动更新位置,请确保将每个移动乘以delta,以考虑任何微小的帧率波动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14315016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档