【问题标题】:How to use LibGDX?如何使用 LibGDX?
【发布时间】:2016-04-11 18:39:13
【问题描述】:

我刚刚开始使用 LibGDX 进行编码和应用程​​序开发,我有一些关于它的一般性和一些更具体的问题。

在我开始之前:我知道我的一些问题可能已经在互联网上的某个地方提出过,但我发现很难得到一个直接的答案。

那么,首先是最基本的问题:

是否可以在合理的时间内在 LibGDX 中创建一个普通的应用程序(如愤怒的小鸟或涂鸦跳跃)? 浏览互联网时,我遇到很多人说 Unity 之类的引擎“非常易于使用”,并且您可以在 LibGDX 中编写游戏代码的一小部分时间内创建游戏。 真的是这样吗?

我的第二个问题与第一个问题有关:

LibGDX 真的值得花时间吗?拿起任何引擎或框架似乎需要做很多工作,所以我想知道 LibGDX 是一个值得学习的成长平台,还是只是一个无关紧要的框架。

第三个问题更具体一点(对我来说也是最重要的一个):

如何让 LibGDX 游戏变得漂亮? 我知道,一开始这听起来很奇怪,但是查看各种应用商店中的数百个应用后,我注意到大多数统一应用看起来非常整洁,而在 Badlogic 库中找到的大多数应用说实话看起来很糟糕。

所以我想知道是否有一种简单的方法可以将动画、粒子效果、阴影等添加到 LibGDX 应用程序中。如果我正在编写一个 2048 克隆(仅作为示例),我怎样才能让我的图块一起滑动并很好地融合?

制作好看的动画是我最苦恼的事情......

(If you want you can have a look at what I created)

如果我能回答我的任何问题,我将不胜感激! 感谢您通过这篇巨大的帖子。

MrMorph

【问题讨论】:

  • 对于游戏编程的完整初学者,我估计 Unity 可以为您节省 30-40% 的时间,因为在没有所见即所得视图的情况下您不会遇到一些常见的初学者问题你正在做的事情。一旦你经历了所有“陷阱”,节省的时间就会大大减少。两种引擎我都用过,各有利弊。 LibGDX 有一个 WYSIWYG,称为 Overlap2D,但它可能会解决这些缺点。如果我在做大型游戏,我可能会选择 Unity,因为它更易于跨平台维护。
  • 对于一个简单的 2D 游戏,我仍然会选择 LibGDX,因为它从一开始就是为 2D 设计的。几年前,要在 Unity 中正确执行 2D,您需要一个完整的精灵图集和 GUI 组件解决方案,因为内置的东西是垃圾。我知道从那以后他们在这方面做了很多工作,但我还没有尝试过新版本。我为我需要的 2D 功能使用了付费的第三方插件。
  • 我认为您看到许多使用 LibGDX 制作的业余游戏的原因可能是因为 Unity 直到几年前才免费。不只是业余爱好者的人可能对赚钱感兴趣,因此会选择在 iPhone 上运行的游戏引擎。 LibGDX 并不总是与 iOS 兼容,而 Unity 和 cocos2d-x(免费)是兼容的。做一些专业的东西当然是可能的。查找 Space Grunts、Ingress、Double Helix 动态壁纸、Kraken 动态壁纸、Asteroids Pack 动态壁纸和 Huey。

标签: java android animation unity3d libgdx


【解决方案1】:

问题 1:

如果您擅长 LibGDX 并且对 API 有一定了解,那么制作像 Angry Birds 或 Doodle Jump 这样的游戏会很容易。 Unity 更易于使用,因为 GDX 没有 GUI 编辑器 - 这意味着您必须使用坐标来定位事物。

问题 2:

我认为 LibGDX 值得做。它是免费且免版税的,这与 Unity 不同,而且它基于 Java,因此速度相对较快。

问题 3:

要制作粒子,有一个 2D 和 3D 粒子编辑器,您可以从 LibGDX 网站下载或在您的 IDE 中运行(如果您导入“工具”模块)。对于动画,您可以使用 Animation 类轻松制作 sprite-sheet 动画,并且您可以使用 MathUtils.lerp() 之类的函数平滑地移动事物(对于您的 2048 克隆),以便随着时间的推移将一个值平滑地插入另一个值,速度减慢为它越来越近了。

【讨论】:

  • 感谢您的回答!似乎你赞成 LibGDX ;) 我不知道插值是可能的,会尽快尝试 :)
  • 您可以使用overlap2D 作为GUI 来构建关卡。它是集成在设置文件中的标准第 3 方库。
【解决方案2】:

一个迟到的答案,但希望有人会觉得这很有用。

在这里查看我对类似问题的回答:What I need to get android game with graphics like this? 我已经使用了 libgdx 和 Unity,并在答案中谈论了我的经验。在这一点上,我赞成 Unity 用于大多数中小型游戏。编辑器确实让开发变得更加容易(尤其是对于单人团队)。 Libgdx + Overlap2D + Ashley(实体组件系统)基本上是一个非常轻量级的 unity imo 版本。走开源路线,您肯定会学到更多,因为您将更多地参与将这些工具/概念粘合在一起。直接回答您的个人问题:

问题 1:

有很多用 libgdx 制作的好游戏。您在图库中看到很多看起来很糟糕的游戏的原因是因为提交是按时间排序的。画廊不会优先展示好游戏,这是不久前的社区决定。像 Unity 这样的引擎当然会首先展示最好的游戏。要查看一些好看的 libgdx 游戏,请查看 Robotality 的游戏。另外,请查看 libgdx 论坛的“Showcase”部分;按回复数排序将显示过去几年制作的一些有趣的游戏。

关于 Unity 更易于使用的说法,我同意。我自己做出了转换,只是因为几个月后回到一个项目是多么容易,然后才开始玩它。当您的游戏主要是代码时,这并不容易。

问题 2:

如果您想学习,Libgdx 是更好的选择。因为它是一个框架,所以您将更密切地处理构成游戏引擎的组件。您将把自己的游戏引擎与提供的 API 放在一起。与 Unity 不同,您必须选择是否要使用像 Ashly 这样的实体组件系统。您将决定何时更新物理引擎、何时渲染、如何加载和管理资源等。再一次,与 Unity 不同的是,没有强制执行的结构。

您将花时间阅读 libgdx 编写良好的源代码以及优秀的技术 github 文档。我想说的是,由于学习,使用 libgdx 制作游戏的整体努力更大。如果您有时间,那就太好了,但如果您只是偶尔将开发作为一种爱好,那可能会令人沮丧。

问题 3:

这个问题有点不清楚。正如我上面所说的,有很多看起来很糟糕的统一制作的游戏,他们只是没有在他们的画廊/展示游戏中展示它们。使用所有流行的游戏引擎制作了大量美术不佳的游戏。

Libgdx 有你想要的东西:检查用于平滑控制对象运动的插值函数、用于创建和加载粒子的粒子编辑器、不确定阴影(对于 3D?)。

希望这将帮助某人决定使用什么工具。

【讨论】:

    【解决方案3】:
    1. 是的,很可能在libgdx 中创建一个简单的游戏。我曾经一直使用这个框架。如果你是半新手,YouTube 有一些很棒的教程。 现在我主要使用统一,原因如下:

      • 从生产力的角度来看,这更容易是的。
      • 在尝试处理图形时,Libgdx 可能需要大量工作。
      • 另外,它是从 Java 到 c# 的轻松转换。
      • 是的,在大多数情况下,unity 可以移动得更快一点,同样从生产力的角度来看,在 libgdx 中有更多的过程来设置图形和视口等。
    2. libgdx 100% 值得。 libgdx 帮助我的很大一部分是掌握这些应用程序的支持是如何工作的。这在统一调试问题方面帮助了我很多,并且只是提高了我的整体知识。

    3. 如果你有良好的图形和对框架的理解,那么你可以制作一个看起来很漂亮的 libgdx 游戏。不同之处在于统一为您简化了流程。您看到的所有演示都来自大量项目。由于 libgdx 是游戏开发的良好开端,将会有很多项目,但没有证据表明投入了多少工作或时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多