2

我正在尝试将 android/iOS 游戏移植到 windows phone 8(cocos2dx v 2.2)。我使用的代码库与我用于 android 和 iOS 的代码库完全相同。游戏运行良好,但我面临一些主要的 FPS 下降。该游戏在 android 和 iOS 上以 60FPS 完美运行,但我在 wp8 上获得大约 35FPS。这与OpenGL和directX的差异有什么关系吗?

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

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

4

2 回答 2

1

实际上,WP8 的 Cocos2dx 端口是可以的,但是已经过时了。Cocos2d-x 现在是 3.0 beta,但是 WP8 还是 2.0 alpha。

无论如何...在 Cocos 中有一些递归绘图函数在 CPU 上非常繁重,此外,请记住,即使 WP8 应该支持数组、列表、地图等,但它们在 WP8 上非常慢。

既然你来到这个主题,请告诉我你是否成功地将 cocos2d-x 放在 XAML+D3D 互操作项目上。我遇到了很多崩溃。

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

于 2013-10-16T17:08:37.600 回答
1

万一有人遇到类似的问题,我减少了场景中的孩子数量,并以发布模式部署了构建。大大提升了FPS。此外,我在更新函数内的每一帧中都发生了一堆浮点到字符串和 int 到字符串的转换。这也影响了处理速度。

于 2013-10-17T16:44:14.963 回答