从cocos2d 1.x升级到2.x后帧速率下降

时间:2012-09-12 20:57:28

标签: ios cocos2d-iphone chipmunk

我最近升级到Cocos2d 2.0之前我的游戏运行正常,帧速率稳定在60fps。在升级到2.0并将一些代码更改为新版本之后,我已经认识到玩游戏大约3-4分钟,帧速率下降到50,而不是大约40。

我在代码中发现了一些错误,比如错误地解释了一些精灵,但是FPS的下降仍然存在。

我在场景中不断创建精灵并删除精灵。在游戏中的每一轮之后,我将移除屏幕元素并再次为新一轮创建它们。几乎所有的元素都是动画的,我在停止所有操作之前将它们从场景中删除。

我发现如果我删除场景并再次启动它,FPS速率会恢复正常。

我做错了什么?我已经尝试了几种可能的解决方案,但我找不到路由原因。

有人可以帮忙吗?

哦,我忘了提到代码在Cocos2d 1.x版本上工作正常。我从来没有用相同的代码识别任何FPS掉落。

1 个答案:

答案 0 :(得分:1)

调试还是发布?设备还是模拟器? --->仅在设备上的发布版本中测量性能。

从描述中听起来很像内存泄漏,你要么得到越来越多的内存使用,要么越来越多的节点没有解除分配,这意味着它们可能会继续运行。也许甚至可以画出屏幕。

有很多原因可以解释为什么一个版本可以正常工作而不是另一个版本,谁知道这个错误只是转换过程中引入的一个新错误。我将从一个简单的测试开始:当你删除它们时,场景的所有节点都运行他们的dealloc方法吗?如果没有,您有内存泄漏,可能是保留周期。将cocos2d的API从assign属性简单地更改为retain属性就可以导致类似这样的事情。

然后检查仪器,找出你泄漏记忆的确切位置。