java - Libgdx |动态生成瓦片 map

标签 java android libgdx desktop

我已经从 tmx 文件中成功设置并获得了平铺 map 渲染。我的游戏是自上而下的 2D 迷宫游戏。我想转向随机生成图 block ,并且我有算法。唯一的问题是我不知道如何才能做到:

1) 动态创建tiledmap 2)我会以某种方式需要在每个图 block 的算法中正确设置旋转。 3)不仅如此,我还需要确定在生成的每个图 block 上绘制哪些 Sprite 。例如,我有角件、直件等...

谢谢!

最佳答案

  1. 使用您的算法。
  2. 为什么需要轮换?您想旋转角件吗?然后自己编写代码即可。
  3. 2,自行决定需要绘制什么图 block 。

我通常做的是给每种类型的楼层一个唯一的编号,如果您有多个楼层可供变化,也给它们一个唯一的编号。然后你的算法需要用类型填充 map ,然后你可以随机插入该类型的独特楼层。

当你的算法完成后,你可以在第二遍中计算角点。如果您有一堵墙,其中只有 W、NW 和 N 是开放的,那么它是从 S 到 E 的墙角。如果您有一个图像用于从 S 到 W 的所有角,那么您只需水平翻转它或将其旋转 270/-90 度。您需要自己计算所有这些事情,是的,使用大量 if 语句或开关是一项乏味的工作。

我建议你从小处开始,只需要一个用于墙壁类型的方 block ,然后从那里继续。因此,只需首先使用 boolean 值创建一个 map ,0 = 流,1 = 墙。稍后您可以进一步扩展它。您可以添加很多变体,我一直在开发具有 56 种不同图 block 类型的图 block 集,并且这些都需要有 1 个或多个变体。

关于java - Libgdx |动态生成瓦片 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517220/

相关文章:

java - 将 Box2D 主体创建与实体组件系统集成

java - 为什么我的加速度传感器在关闭 Activity 后仍在工作?

android - 带有组和子复选框的可扩展 ListView 给出空指针异常

javascript - 如何根据操作系统显示元素?

android - EditText.getLocationOnScreen() 为 2 个不同的位置返回相同的结果

java - 如何销毁libgdx中的应用程序监听器对象

opengl - LibGDX 帧缓冲区混合

java - Jersey 415 不支持的媒体类型

java - Google App Engine 上的 Stripes 问题

java - Netbeans 在删除的代码中显示编译错误