3

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

4

1 回答 1

2

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

这实际上是 scene2d 的主要用途之一(以及为什么它主要用于 UI)。另一个原因是对演员进行分组的能力,但我认为你不需要那个。

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

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

于 2014-02-10T11:00:30.237 回答