【问题标题】:Developing for HTML5 canvas using Box2D engine but NOT in Javascript使用 Box2D 引擎而不是 Javascript 开发 HTML5 画布
【发布时间】:2011-09-27 13:07:36
【问题描述】:

对于即将到来的项目/游戏,我基本上有以下限制:

  1. 应在 HTML5 画布元素中进行绘图
  2. 使用 Box2D 物理引擎(或等效物理引擎)
  3. 游戏逻辑(以及尽可能多的代码)应该用 Java 编写,因为我精通 Java,如果能够将项目移植到 Android,那就太好了。

可以总结为:我想在 HTML5 画布元素中开发游戏/项目,使用某种物理引擎,同时避免 JavaScript 的混乱。 (最好但不一定通过 Java)

这可能吗?是否可行?

我看过 GWT,但我不确定它对于动画的效率如何,以及我将如何整合 Box2D。 (或其他 Java 物理引擎,但翻译成 javascript 是否足够快?)

【问题讨论】:

  • 原生 JavaScript 有什么让你害怕的?
  • 主要是缺少 OOP 概念(继承、接口),但也缺少诸如命名空间之类的小东西。所有让组织大型项目不那么痛苦的事情。我知道你可以“伪造”你的方式,但我仍然认为它更容易出错。如何组织更大的 javascript 项目?什么时候将代码分成文件?我想我只是害怕任何更大的项目都会变成一个无法维护的烂摊子。重构也很困难。

标签: java javascript html canvas box2d


【解决方案1】:

我知道 GWT 将 Java 编译为 JavaScript,但它是在其框架的边界内这样做的,所以我不知道在您的项目中使用 GWT 会有多容易。

如果您觉得 JavaScript 太令人沮丧,请查看 CoffeeScript。它纤薄而锋利,可以与 JavaScript(在您的情况下为 Box2D JS 端口)无缝互操作。

【讨论】:

    【解决方案2】:

    Google 的 PlayN(以前称为 ForPlay)被用于使用 Box2D 制作网页版愤怒的小鸟。它主要是打算使用 WebGL 进行渲染,但是当 WebGL 不可用时可以使用 canvas 元素(愤怒的小鸟需要 Flash,用于音频)。

    http://code.google.com/p/playn/

    http://www.youtube.com/watch?v=F_sbusEUz5w

    【讨论】:

    • 听起来很有趣,去看看
    • 顺便说一句,他们为愤怒的小鸟使用了哪个 Box2D 端口?我假设是 Java 的?
    • 我不确定,但我认为他们使用了 Box2D 的 Java 端口并针对 PlayN 进行了一些调整。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2013-08-27
    • 2014-04-06
    • 1970-01-01
    相关资源
    最近更新 更多