我正在使用Godot autotiles来创建关卡,我希望能够将草放置在其他草的顶部(就像Minecraft如何有一个草块,然后在草的顶部有诸如花和草之类的东西)。我已经有了完整的地形集以及草和草变体(例如花),我只需要知道如何实现“如果面向外面的草砖,则在顶部添加额外的草植物”的规则集。我还计划使用任何给我的方法来给树添加叶子,或者在石头上添加岩石碎片,我只是以草为例。如果可能的话,有多个层也很好,但我不知道这是否可能。
我尝试过手动放置额外的草,但是这个解决方案即使是单个级别也需要很长时间才能执行,因为草是多方向的(斜坡有自己的草精灵,侧面的东西有自己的草等)。
模式看起来很有希望,但是我找不到任何有关如何在自动平铺中使用它们的文档(也许我在这里遗漏了一些东西?)
我还研究了一些自动平铺/地形插件,但似乎没有一个记录这种行为。
我还研究了通过扩展内置的 tilemap 节点来编写我自己的插件或程序自动图块规则集。然而,当我正在制作游戏果酱时,如果已经有内置的方法可以做到这一点,我不想浪费大量时间来做这件事。
TileMap
系统在Godot 4中有很多变化,并且文档还没有缓存。
是的,您可以在检查器中的
TileMap
中进行图层。但是您无法制定跨越多个图层的自动平铺规则。不,模式不会自动平铺。
自动平铺可能具有随机性。这可能足以实现您的目标。是这样的:
TileSet
中定义多个地形。 每个地形都有一种颜色,这只是为了帮助识别它们。TileMap
中进行绘制。选择“地形”选项卡,选择一个地形并对其进行绘制。现在,由于 Godot 使用您在 TileSet 上绘制这些地形的方式,因此给定位置可能有多个有效的图块(例如,您以相同的方式绘制了多个图块)。在这种情况下,戈多会随机选择。有了它,你就可以拥有在绘制时具有随机图块的自动图块。所以你可以有一个草块,一个有花的草块,然后让戈多随机挑选。
现在,如果您需要对多个图层执行此操作,请尝试使用分散工具。
在 TileMap 面板的 Tiles 选项卡中,会有一个看起来像骰子的工具,带有工具提示“放置随机图块”,这将随机放置您选择的图块(包括没有图块的机会,由散射控制)选择该工具时出现的值)。
例如,您可以使用它在第一层上绘制草,然后在第二层上随机绘制花朵。
我想你可以制作一个脚本来迭代
TileMap
的其中一层并随机填充第二层。
set_cell
方法可以获取 layer
、位置以及要放置的内容的 id。所以你需要从地形到可能的地点的 ID 的映射。
get_cell_tile_data
,它为您提供一个具有 TileData
属性的 terrain
对象。