gpt4 book ai didi

java - 如何使用 Scene2D 在 LibGDX 中实现类似界面的棋盘游戏

转载 作者:行者123 更新时间:2023-11-29 08:49:13 25 4
gpt4 key购买 nike

我刚刚开始游戏开发,并决定使用 LibGDX 制作一个 2048 克隆来学习基础知识。

我开始使用一个简单的二维数组来实现它并且它可以工作,但问题是没有任何动画。因此,例如,如果有一个位于 [0][0] 位置的图 block ,并且在用户滑动屏幕后它必须移动到 [0][3] ,这种转变会立即发生(因为我基本上只是更新我的 2D 数组并重新渲染图 block )。

有人告诉我这种类似棋盘游戏的 UI 是使用 Scene2D 的完美场景。我可以使用 Actors 非常轻松地实现基本的 4x4 网格,但我的问题是,我如何使用 Scene2D 正确地管理基本上是 2D 结构的东西?

如果用户滑动面板(左、右、上、下)并更新 2D 数组,我已经有了处理将图 block 移动到哪里的算法,但感觉就像我使用的是 Scene2D,使用这个二级二维数组数据结构是矫枉过正。

现在我的做法是:

  1. 用我的图 block 创建一个二维数组和 Scene2D
  2. 当用户滑动时,用方 block 的新位置更新二维数组
  3. 遍历 Scene2D 中的 Actor 并将其与更新后的二维数组中的图 block 进行比较。如果发生了变化,则为它们设置动画(从图 block 的原始位置到最终位置的基本过渡)

我只是觉得这里有不必要的步骤和不必要的数据结构。

处理这种情况的正确方法是什么?

感谢有用的建议,谢谢!

最佳答案

您是否将磁贴放在 TableLayout 中?正如您所发现的,仅将其绘制过来是行不通的。

要为其设置动画,您需要定义一个 MoveAction。

MoveToAction moveAction = new MoveToAction();
moveAction.setPosition(300f, 0f);
moveAction.setDuration(10f);
myActor.addAction(moveAction);

示例复制自: http://www.gamefromscratch.com/post/2013/12/09/LibGDX-Tutorial-9-Scene2D-Part-2-Actions.aspx

不过,如果您使用的是 TableLayout,我不确定如何实现。

关于java - 如何使用 Scene2D 在 LibGDX 中实现类似界面的棋盘游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23555768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com