使用tilemaps

介绍

tilemap是用来创建游戏布局的平铺网格。使用它有几个好处 TileMap 设计级别的节点。首先,它们可以通过将瓷砖“绘制”到网格上来绘制布局,这比单独放置瓷砖要快得多。 Sprite 一个接一个的节点。第二,它们允许更大的级别,因为它们是为绘制大量瓷砖而优化的。最后,您可以将碰撞、遮挡和导航形状添加到图块中,为图块添加其他功能。

../../_images/tileset_draw_atlas.png

项目设置

这个演示我们将使用以下取自肯尼的“抽象平台”艺术包的瓷砖。你可以找到整套 here 但在这个演示中,我们将坚持使用这个小集合。

../../_images/tilesheet.png

创建一个新项目并将上面的图像放在项目文件夹中。

使用瓷砖集时,相邻瓷砖的匹配非常重要。Godot的默认设置是使用内插的“过滤”模式导入二维图像,这将导致瓷砖之间的边界难看。选择图像并单击导入选项卡。关掉 Filter 然后单击“重新导入”。见 导入图像 有关详细信息。

tilemap节点

添加新的 TileMap 节点到场景。默认情况下,tilemap使用方块网格。您还可以使用基于透视的“等轴测”模式或定义自己的自定义瓷砖形状。

../../_images/tilemap_mode.png

在Inspector的“cell”部分下有许多属性,您可以调整这些属性来自定义Tilemap的行为:

../../_images/tilemap_size.png
  • Cell Size

    这定义了网格的大小。这应该与瓷砖的像素大小相匹配。默认值为 (64, 64) .

  • YSort

    这会使瓷砖按顺序绘制 Y 定位,以便在“高”瓷砖的顶部绘制“低”瓷砖。

  • Half Offset and Tile Origin

    这些属性会影响瓷砖相对于网格位置的位置。

  • Quadrant

    定义用于批处理绘图的块大小。这会对性能产生负面影响。除非你知道你在做什么,否则不要改变它。

  • Custom Transform

    用来改变瓷砖的形状。如果有非方形瓷砖,请使用此选项。

所有这些选项都可以保留为本演示的默认值。

创建tileset

一旦您配置了tilemap,就可以添加 TileSet . Tileset是 Resource 它包含关于瓷砖的数据-它们的纹理、碰撞形状和其他属性。当游戏运行时,tilemap将各个图块组合成单个对象。

要添加新的tile set,请单击“tile set”属性并选择“new tileset”。

../../_images/tilemap_add_tileset.png

执行此操作时,“tileset”面板将在编辑器窗口的底部打开:

../../_images/tilemap_tool.png

首先,您需要添加将用于瓷砖的纹理。单击“将纹理添加到tileset”按钮并选择 tilesheet.png 图像。

接下来,单击“新建单个平铺”并在图像中拖动以选择所需的平铺。单击“启用快照”按钮可以更容易地选择整个图块。黄色矩形将出现在所选瓷砖周围。

../../_images/tilemap_add_tile.png

单击场景树中的tilemap,您将看到新创建的tilemap现在显示在右侧。在视口中单击,可以放置瓷砖。右键单击以删除它们。

../../_images/tilemap_draw.png

很容易意外地选择和移动tilemap节点。要避免这种情况,请使用节点的锁定按钮:

../../_images/tile_lock.png

碰撞形状

如果你制作的地图需要碰撞-例如墙壁、地板或其他障碍物-那么你需要将碰撞形状添加到任何你想被视为“实体”的瓷砖上。

单击编辑器窗口底部的“tileset”返回tileset工具。单击先前定义的图块(用黄色勾勒)。选择“碰撞”选项卡,然后单击“创建新矩形”按钮。确保仍启用网格捕捉,然后单击并拖动图块。方形碰撞形状以浅蓝色显示:

../../_images/tileset_add_collision.png

您可以以相同的方式向图块添加遮挡和导航形状。

Atlas 瓦片

您可以使用一个图集同时定义一组图块,而不是一次添加一个单独的图块。单击“New Atlas”并拖动以选择整个瓷砖页。

../../_images/tileset_atlas.png

如果还没有,请确保将快照设置中的“步骤”更改为 (64, 64) 或者你的瓷砖可能会被切成小块。您可以在Inspector中找到:

../../_images/tileset_snap.png

定义了地图集后,可以像以前一样将碰撞形状添加到各个瓷砖中。您也可以单击“图标”选择其中一个图块来表示地图集。

回到tilemap中,您可以选择Atlas图块,您将看到它包含的所有图块:

../../_images/tileset_draw_atlas.png

除了在定义图块时节省时间外,在处理大量图块时,将类似图块分组在一起也会有所帮助。

提示和技巧

  • 如果你用的是 Camera2D 要滚动您的级别,您可能会注意到瓷砖之间出现了线条。要解决此问题,请打开“项目设置”,并在“渲染/质量”部分启用“使用像素捕捉”。

  • 您可以使用编辑器右上角的图标翻转和旋转瓷砖。

  • 若要绘制直线,请在单击并拖动平铺时按住<shift>。

  • 复制、粘贴和桶填充等工具可以在右上角的“tilemap”菜单中找到。

../../_images/tilemap_menu.png