java - 用于具有 2D 逻辑的 3D 游戏的 Libgdx scene2d?

标签 java 3d libgdx scene2d

我用 libgdx scene2d 开始了一个 2D 自上而下的游戏,我喜欢它的实现方式、它的逻辑以及程序员如何使用它(例如 stage.act() 调用 actor .act(delta) 对于每个注册的 Actor)。现在我想将此逻辑用于 3D 游戏。我知道 scene2d 主要是为 UI 而不是游戏,尤其是 3D。但我的 3D 游戏逻辑就像 2D 自上而下。 让我解释一下:你,玩家,在迷宫中。您只能与在每个高度上都相同的墙壁碰撞。所以碰撞检测与 2D 自上而下相同。你也不能跳跃,只能向前走,向后走......所以运动也与 2D topdown 相同。只有 View ,所以绘图,才会是第一人称,所以是 3D。仅将 scene2d 滥用于逻辑并使用 Model 等进行 3D 绘图会不会很糟糕?我只是想使用 scene2d,所以我不必编写自己的“所有注册对象立即行动”方法。你怎么看?

最佳答案

在这种情况下,如果您想捕获 Actors 上的输入事件,例如鼠标点击,您可以使用 scene2d。

这实际上是 scene2d 的主要用途之一(也是它主要用于 UI 的原因)。另一个原因是能够对 Actor 进行分组,但我认为您不需要那个。

如果您不想在游戏对象上捕获输入事件,则不应使用 scene2d。

模拟 scene2d 的 Stage就像维护 List<Entity> 一样简单并调用 entity.update(delta) (相当于 stage.act())和 entity.render(delta) (相当于列表中每个实体的 stage.draw())。

关于java - 用于具有 2D 逻辑的 3D 游戏的 Libgdx scene2d?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21674747/

相关文章:

algorithm - 从二进制卷中分离对象

algorithm - 运动结构,在给定 2D 图像点对应的情况下重建 3D 点云

java - 如何在 Java 中打断长行

java - 在这种情况下,我需要 Web 服务还是 Hessian 服务吗?

javascript - 如何整合Golang后端和Javascript(three.js)前端?

java - 键盘输入在 libgdx android 中不起作用

java - 手机无法编译shader

java - 如何检测两个 Sprite 是否同时被触摸?

java - 查找可以实例化的相关类型

java - JLabel 之上的 JPanel