【问题标题】:Can I make desktop-only games using libGDX?我可以使用 libGDX 制作纯桌面游戏吗?
【发布时间】:2013-07-30 19:04:24
【问题描述】:

我对 libGDX 有点陌生,我不太明白为什么在 gdx-setup-ui 中需要 Android 模块?
libGDX不是用来做桌面游戏的吗?有没有一种方法可以创建一个避免 Android 的桌面项目(只有核心 + 桌面)?

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

    结帐this,这里你看到你用你的核心项目放了所有非特定平台的代码,而桌面项目就是你想跑桌面时运行的项目。

    【讨论】:

    • 嗯,是的。我都读过了。问题是:我可以避免使用 Android 模块吗?可以简单地删除它而不会出现问题吗?
    • 你应该可以做到的。
    • 请注意默认资产已放入 Android 项目(因为它的构建工具很烂),因此如果您对它进行核对,您需要将资产放入您的桌面或核心项目中。
    • 因为@P.T.就是说,我只是从构建路径中删除 src 文件夹,其余部分保持不变。但是,我确实打算在遥远的将来某个时候将我的游戏移植到 Android...
    【解决方案2】:

    根据官方文档(以及我过去的做法),是的,您可以。您只需删除 android 项目,一切就完成了。但是使用 Java 进行纯桌面游戏开发是很奇怪的,因为有 .NET 甚至是 .NET (Mono) 的开源实现。使用 JVM,您无法获得良好的性能,尤其是对于游戏(或者它会非常困难和肮脏),因为没有用户定义的值类型,所有泛型只能具有引用类型作为类型参数等。

    【讨论】:

    • 我不同意桌面 JVM 无法为游戏实现良好性能。
    • 好的。 “好”可能并不准确,但在使用其他 VM 或本机代码执行相同任务时,您当然可以获得更好的性能和更少的 GC 卡顿。 (当然,只有当您的 Java 代码会遇到一些与性能相关的 JVM 限制时,这才是正确的……但祝您好运,尽量不要遇到这些限制。)当然,对于许多游戏,甚至 JVM 就足够了。一个对 CPU 没有太大压力的简单游戏可能不值得学习另一种语言。
    • 我同意。使用 JVM 的第一人称射击游戏需要缓存所有内容以防止 GC 杀死帧速率。更简单的就可以了。
    • 我很难相信.NET 会比Java 更优越(即C#)。问题在于本机库绑定和 GC。
    • 不要忘记,因为它运行在 JVM 上,你也可以在 Linux 或 MacOS 上使用它。 .NET 就不是这样了。
    【解决方案3】:

    也可以将 Main.java 和 /lib 文件夹的内容从桌面移动到核心项目以删除前者。您需要调整构建路径设置才能使其正常工作,但我认为在这种情况下拥有一个项目会更容易。

    【讨论】:

      猜你喜欢
      • 2018-08-24
      • 2017-03-10
      • 1970-01-01
      • 2017-10-20
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多