Windows Phone 8上的Cocos2dx性能问题

时间:2013-10-15 09:21:11

标签: optimization windows-phone-8 cocos2d-x frame-rate

我正在尝试将Android / iOS游戏移植到Windows Phone 8(cocos2dx v 2.2)。我正在使用与用于Android和iOS的完全相同的代码库。游戏功能很好,但我面临一些主要的FPS下降。游戏在Android和iOS上以60FPS完美运行,但我在wp8上大约可以获得35FPS。这是否可以解决OpenGL和directX的差异?

我怀疑它与游戏的逻辑和计算有关,因为当游戏在Windows手机中启动时,它在主菜单上以60FPS开始,其中有5个精灵。但是当我在屏幕上添加更多精灵时,比如大约30个精灵(我在游戏中时的平均精灵数量),FPS迅速下降到35-40范围。请注意,此时没有运行调度程序或更新函数。我在Android上做了同样的测试,但FPS没有下降。 cocos2dx的win8端口是不是很糟糕?

任何帮助,评论或重定向到有用的文章将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分:1)

实际上,WP8的Cocos2dx端口没问题,但已经过时了。 Cocos2d-x现在为3.0 beta,但WP8保持在2.0 alpha。

无论如何......在Cocos中有一些递归绘图函数,它们在CPU上非常繁重,而且,请记住,即使WP8被认为是tu支持数组,列表,映射等,它们在WP8上也很慢

因为你来到这个主题,如果你成功地将cocos2d-x放在XAML + D3D Interop项目上,请告诉我。我收到了大量的崩溃事件。

编辑:的确,处理(绘制或更新)子“CCNode”的递归调用在设备上非常繁重。但是,在放入Cocos2d-x ver之后。 2.0alpha for WP8进入XAML + D3D互操作项目,我发现了很多与内存相关的问题。显然,在这样做之后(或者仅仅因为我不知道如何正确配置我的VS项目并允许松散寻址),许多未初始化的指针和数据会导致一些内存重叠,从而导致重大崩溃。 这证明只是它真的是一个alpha版本:)太糟糕了没有更新版本的Cocos2d-x for Wp8可用。

答案 1 :(得分:1)

如果有人遇到类似的问题,我减少了场景中的孩子数量,并在发布模式下部署了构建。为FPS带来了重大推动力。另外,我在update函数中的每一帧中都有一堆浮点字符串和int到字符串转换。这也正在吞噬处理速度。