6

Libgdx 主要专注于 Android 并且是用 java 编写的,但显然它可以在浏览器(webGL?)上运行应用程序。Three.js 是一个非常令人印象深刻的 javascript 3D 库,它也使用 WebGL(或 2d 画布)进行渲染。到目前为止,我还没有看到这两者之间的任何比较,因为它们有不同的重点,但我想知道它们之间的区别,一个图书馆能做什么而另一个图书馆不能。

4

1 回答 1

5

我认为我没有资格谈论 Three.js,但我在我的许多项目中都使用过 libGDX,并且知道它在 WebGL(浏览器导出)方面的缺点。

  1. 首先要考虑的因素是你习惯什么语言,Three.js 使用 JavaScript,libGDX 使用 Java。虽然 libGDX 导出到 WebGL,但这只是因为它使用 GWT,您仍然使用 Java 进行编码。

  2. LibGDX(如您所说)专门用于移动和(在一定程度上)桌面应用程序。如果您的目标是创建适用于 Web 以及移动设备和桌面的东西,那么应该考虑使用 libGDX。但是,如果您只想为 Web 编程,那么我真的会考虑只使用 Three.js,原因我稍后会解释。

  3. LibGDX 主要用于游戏开发,因此,如果您正在制作的应用程序是游戏,您可以考虑使用 libGDX,因为它使 3D 游戏编程变得简单易用(并且您可以将其移植到多个平台,而不是只有网络,但移动和桌面)。但是,如果您正在制作其他东西,Three.js 可能是更好的选择。

  4. 如果您的分发平台将是您的网络版本,我建议坚持使用 Three.js,因为 libGDX 不适合其 WebGL 导出。最大的问题之一(这是可以解决的,但处理起来很痛苦)是 libGDX 不会阻止使用默认浏览器密钥。但是,如果您确实选择使用 libGDX,请确保查看内容以解决该问题(或多或少)。

  5. 在大多数情况下,如果您的主要平台将是 Web,您将希望使用一种用于 Web 开发的语言进行编程。如果您使用 Three.js 框架在 JavaScript 中进行编程,那么代码运行起来会更加简洁和快速。同时,如果您使用 libGDX,它本质上会将 Java 代码转换为 JavaScript 编码,从而使其效率低下且体积庞大,并且将包含许多无用或可以简化的 JavaScript 代码行。这不是 libGDX(或者更确切地说是 GWT)本身的问题,而只是自动化编程语言翻译时无法避免的问题。举个例子,使用编程语言 Haxe,如果你编译一个HelloWorldHaxe to C++ 它包含一堆不必要的变量和方法(在 C++ 源代码中),你可以摆脱它们。在这种情况下也是如此。

所以最终取决于你的目标是什么。如果您打算只使用 Web 版本,请使用 Three.js,否则应考虑使用 libGDX。

于 2015-01-11T20:52:35.557 回答