【问题标题】:Libgdx | Dynamically Generate TiledmapLibgdx |动态生成 Tiledmap
【发布时间】:2016-05-30 03:30:05
【问题描述】:

我已经设置并从 tmx 文件成功地获得了平铺地图渲染。我的游戏是一个自上而下的 2D 迷宫游戏。我想移动到随机生成图块,并且我有算法。唯一的问题是我不确定我该怎么做:

1) 动态创建平铺地图 2)我需要以某种方式在每个图块的算法中正确设置旋转。 3) 不仅如此,我还需要确定要在我生成的每个图块上绘制哪些精灵。比如我有角件、直件等……

谢谢!

【问题讨论】:

    标签: java android libgdx desktop


    【解决方案1】:
    1. 使用您的算法。
    2. 为什么需要轮换?你想旋转角件吗?然后只需自己编写代码即可。
    3. 2,确定需要自己绘制的图块。

    我通常会为每种类型的楼层指定一个唯一编号,如果您有多个楼层可供选择,请也为这些楼层指定一个唯一编号。然后你的算法需要用类型填充地图,然后你可以随机插入该类型的唯一楼层。

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

    我建议你从小处着手,只要有一个适合墙壁类型的方块,然后从那里继续。因此,只需首先使用布尔值创建一个地图,0 = flow 和 1 = wall。稍后您可以进一步扩展它。您可以添加很多变体,我一直在研究一个包含 56 种不同瓷砖类型的瓷砖集,而这些都需要有 1 个或多个变体。

    【讨论】:

    • 是的,我理解我的算法。我只是不明白如何实际动态创建平铺地图。我知道如何加载和使用平铺地图,但是如何使用代码创建平铺地图?
    • 您在数据结构上运行算法并解释它的值。假设您有一个包含10 的二维数组,那么对于每个0,您可以绘制一堵墙,对于每个1,您可以绘制一个地板。
    • 是的,我也明白。我的问题是如何动态创建 libgdx TiledMap 类。
    • @Wyatt 为什么要这样做?为什么不创建你自己的?我从未使用过 Tiled,它无法按我的意愿工作。
    • 我尝试创建自己的,但是当我这样做时,即使在 PC 上渲染 100x100 (10,000) 瓷砖也会产生可怕的延迟。我不确定 tiled 是如何如此有效的。
    猜你喜欢
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 2014-01-28
    • 1970-01-01
    相关资源
    最近更新 更多