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

最佳答案

如果要捕获Actor上的输入事件(例如鼠标单击),可以在这种情况下使用scene2d。

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

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

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

10-08 08:39