Ios 如何消除cocos2d跑步游戏中的口吃?

Ios 如何消除cocos2d跑步游戏中的口吃?,ios,animation,cocos2d-iphone,Ios,Animation,Cocos2d Iphone,我正在构建一个cocos2d连续运行的ios游戏,其中角色被设置动画以在场景中运行。背景、角色脚下的地面和奔跑角色后面的围栏以相反方向移动以模拟向前运动。角色本身已设置动画以在适当位置运行。偶尔会有其他精灵在场景中移动 我的所有移动(角色的在位动画除外)都在更新方法中发生 我注意到,当其他精灵经过场景时,所有移动的部分都会结巴。当没有其他精灵时,口吃就会消失 我还注意到,口吃在iPad3(ios 6.0.1)中几乎是无法察觉的,而在iPhone3GS(ios 6.0.1)和iPad1(ios 5

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

我的所有移动(角色的在位动画除外)都在更新方法中发生

我注意到,当其他精灵经过场景时,所有移动的部分都会结巴。当没有其他精灵时,口吃就会消失

我还注意到,口吃在iPad3(ios 6.0.1)中几乎是无法察觉的,而在iPhone3GS(ios 6.0.1)和iPad1(ios 5.1.1)中最为明显,而在iPhone4(ios 6.0.1)中则较为明显

我不知道从哪里开始解决这个问题——我试图删除额外精灵的实际渲染,我也尝试删除角色后面的围栏——但这两个更改都没有对口吃产生任何影响

有什么建议吗


更新:按照@Fogmeister的建议,通过运行时间分析器修复了它。事实证明,我在每次更新时都进行磁盘I/o,以查找一些状态变量。我优化了它,所有设备上的口吃都消失了。谢谢

您需要确定代码中占用时间并导致口吃的原因

这似乎只是一个优化问题,因为您可以在旧的、速度较慢的设备上看到更多的口吃,而在新的、功能更强大的设备上看到更少的口吃

使用时间剖面仪分析应用程序。这将告诉您时间花在哪里,并几乎立即指向占用时间的函数(如果不是行)


一旦您发现可以开始优化。

您需要确定代码中占用时间并导致口吃的原因

这似乎只是一个优化问题,因为您可以在旧的、速度较慢的设备上看到更多的口吃,而在新的、功能更强大的设备上看到更少的口吃

使用时间剖面仪分析应用程序。这将告诉您时间花在哪里,并几乎立即指向占用时间的函数(如果不是行)


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

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

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

谢谢,这很有帮助!我通过运行时间分析器发现了问题。我在每个可以优化的更新上都做了磁盘I/O。不用担心,很乐意帮助。谢谢,这很有帮助!我通过运行时间分析器发现了问题。我正在对每一个可以优化的更新进行磁盘I/O。不用担心,很乐意帮助。谢谢,我根据@Fogmeister的建议修复了它。请参阅上面的更新。谢谢,我根据@Fogmeister的建议修复了它。见上面的更新。