瓦片地图编辑器

瓦片地图就是一个关卡:用你的某张图像的图块绘制的格子网格,带有代码读取的标签,以及放在上面的物件,例如主角的起点、金币、宝箱。它在 iPad 和 Mac 的瓦片地图编辑器中打开。

打开瓦片地图编辑器

在文件中选择一个 .tilemap,它会直接在瓦片地图编辑器中打开。要新建一个,选择 文件 › 新素材…,然后选 瓦片地图(参见 项目与素材)。

栏中显示地图的名称、大小、图块大小和缩放。图块 | 物件 选择你编辑的图层(L)。网格 显示格子的线,地图设置 用来链接图块集、调整地图大小和设置格子大小。

绘制图块

在 图块 图层上,侧栏显示图块集:点按一个图块来选取它,或拖过多个图块选取图章。工具沿画布边缘排列,各有快捷键:

绘制标签(T)绘制图块集下方选中的标签而不是图块,显示标签 在地图上显示标签。代码用 map.hit(…) 读取格子的标签:例如墙用标签 2(参见 碰撞)。

物件图层

物件 是放在格子上的名称:主角的起点、一排金币、一个宝箱。在栏中选择 物件(L)即可放置。侧栏变成物件面板:项目中的每个精灵都用第一帧绘制,并以它命名。物件的名称就是它的精灵的名称,代码读取的也是这个名称。

物件不会落在另一个物件上:移到已有物件的格子会被拒绝,物件回到原处,编辑器会说明那个格子里有什么。按住 ⌥ 则交换两者。删除、剪切、复制 和 粘贴 都作用于物件(粘贴的一组会跟随指针,直到你点按)。显示名称(N)显示所有名称;否则在选择或指向物件时显示它的名称。在物件图层上,填充、矩形 和 绘制标签 呈灰色。

在图块图层上,物件以 40 % 留在地图上,点按会绘制物件下方的图块,而不会碰到物件。

此地图上 统计每个名称的物件数量;点按一个名称即可全部选中。在地图上右键点按会打开图层的菜单。

种类

面板中的 新建种类… 给精灵的某一帧取一个自己的名字:例如用史莱姆精灵第二帧绘制的 guard,放在 slime 旁边。种类随地图保存,并在面板中列在精灵之后。

在“文件”中重命名精灵时,如果项目的地图上有用它绘制的物件,会询问 同时重命名它的 3 个物件?:重命名物件 会在每张地图上重命名它们,连同用它绘制的种类,一次撤销即可一起恢复新名称和物件;保留原名 则不作改动。精灵被删除,或重命名时未带上物件,它的物件保留名称,以虚线绘制,直到再有同名的精灵或种类。

在 iPad 上

轻点会在手指抬起的位置放置物件。用 选择 拖动物件即可移动;无论用哪个工具,长按都会拿起物件以便移动,不移动就松开则会显示它的菜单。在物件图层上,地图上方的编辑胶囊有 删除。双指用于平移和缩放,从不放置任何东西。

在代码中

map.things() 以 (name, row, column) 列出物件:

level = world.spawn(map=GridMap(tilemap="level"))

for name, row, column in level.map.things():
    if name == "coin":
        place_coin(row, column)   # 你的游戏自己的函数

格式和地图的其他函数请参见 GridMap。

面板栏中的在代码中使用会列出脚本中用到这张地图的行;选择一行即可跳过去。在代码中 Cmd+点按地图名会回到这里。

撤销和重做

每次编辑都是 撤销(Cmd+Z)的一步:一笔图块、放置一排金币的一次拖动、多个物件的移动。