title: Defold 瓦片地图手册
*瓦片地图*是一个组件,允许您将*瓦片图源*中的瓦片组装或绘制到大网格区域上。瓦片地图通常用于构建游戏关卡环境。您还可以在地图中使用瓦片图源中的*碰撞形状*进行碰撞检测和物理模拟(示例)。
在创建瓦片地图之前,您需要先创建瓦片图源。请参阅瓦片图源手册了解如何创建瓦片图源。
要创建新的瓦片地图:
要在瓦片地图上绘制瓦片:
您可以直接从图层中拾取瓦片并将选择用作笔刷。按住Shift并点击瓦片可将其拾取为当前笔刷。按住Shift时,您还可以点击并拖动以选择一块瓦片作为更大的笔刷。此外,还可以通过按住Shift+Ctrl以类似方式剪切瓦片,或通过按住Shift+Alt擦除它们。
要顺时针旋转笔刷,请使用Z。使用X进行水平翻转,使用Y进行垂直翻转笔刷。
要将瓦片地图添加到游戏中:
您可以通过多种不同的函数和属性在运行时操作瓦片地图(请参阅API文档了解用法)。
您可以在游戏运行时动态读取和写入瓦片地图的内容。为此,请使用tilemap.get_tile()
和tilemap.set_tile()
函数:
local tile = tilemap.get_tile("/level#map", "ground", x, y)
if tile == 2 then
-- 将草地瓦片(2)替换为危险的洞瓦片(编号4)。
tilemap.set_tile("/level#map", "ground", x, y, 4)
end
除了*Id*、*Position*、*Rotation*和*Scale*属性外,还存在以下组件特定属性:
瓦片图源 : 用于瓦片地图的瓦片图源资源。
材质 : 用于渲染瓦片地图的材质。
混合模式 : 渲染瓦片地图时使用的混合模式。
瓦片地图有许多不同的属性,可以使用go.get()
和go.set()
进行操作:
tile_source
: 瓦片地图的瓦片图源(hash
)。您可以使用瓦片图源资源属性和go.set()
更改此属性。请参阅API参考中的示例。
material
: 瓦片地图的材质(hash
)。您可以使用材质资源属性和go.set()
更改此属性。请参阅API参考中的示例。
{% include shared/material-constants.md component='tilemap' variable='tint' %}
tint
: 瓦片地图的颜色色调(vector4
)。vector4用于表示色调,x、y、z和w分别对应红色、绿色、蓝色和alpha色调。
*game.project*文件中有一些与瓦片地图相关的项目设置。
有一些外部地图/关卡编辑器可以直接导出到Defold瓦片地图:
Tiled是一个知名且广泛使用的正交、等距和六边形地图编辑器。Tiled支持多种功能,可以直接导出到Defold。在Defold用户"goeshard"的这篇博客文章中了解更多关于如何导出瓦片地图数据和附加元数据的信息。
Tilesetter可用于从简单的基础瓦片自动创建完整的瓦片集,它有一个地图编辑器,可以直接导出到Defold。