0

我正在计划使用 Box2D js 框架开发针对 Android 和 iPhone 平台的基于 HTML5-Canvas 的跨平台游戏。我的游戏包含一些很好的物理动作,因此我选择了 Box2D JS(http://box2d-js.sourceforge.net/)。

所以,我最近在我的安卓手机/安卓平板电脑上运行了一些 Box2D HTML 示例(http://box2d-javascript-fun.appspot.com/ )。在运行基本的物理动作时,我真的觉得这些页面的性能很低。

谁能建议如何解决它?

任何人都可以推荐其他可以提供良好性能的引擎,这些引擎必须具有像 Box2D 这样的应用物理动作吗?

PS:我的 Android 平板电脑有 1 GHz 的处理器和 512 MB 的 RAM。当我在页面上方运行时,几乎 240 MB 是免费的。

4

1 回答 1

1

是的,canvas 在移动设备上的性能确实较差——所以 box2d 也会更慢。

在 box2dJS 中,您可以调整时间间隔和分辨率迭代以适应速度较慢的移动设备。调整时间间隔将导致游戏动画更快或更慢。调整分辨率迭代将导致游戏在物理上的准确性更高/更低。也许您可以“微调”box2d 并仍然使用它。

我建议调整而不是放弃 box2d。像愤怒的小鸟这样的游戏使用 box2d 物理引擎并且在移动设备上运行良好。如此高效的编程使box2d表现良好(而糟糕的编程会使box2d表现不佳)。

不过,您的问题更多:Matt Greer 上个月对物理引擎进行了一些测试,他的结果在这里:http ://buildnewgames.com/game-engine-comparison/

最后,如果你不需要更高级的物理,比如恢复和摩擦,你可以“自己动手”!您可以从众多开源物理引擎之一中提取矩阵变换和碰撞代码,困难的部分已经为您完成。除了了解他们如何优化性能之外,您最终将获得一个小型且快速的物理引擎,该引擎可以根据您的确切需求进行调整。

于 2013-02-25T17:28:24.333 回答