在 godot 教程 系列的这一集中制作您自己的塔防 在 godot 教程 系列的这一集中制作您自己的塔防
游戏 我们将创建这张地图 游戏 我们将创建这张地图
让我们直接 开始我们要做的第一件事就是获取 让我们直接 开始我们要做的第一件事就是获取
我们在上一个教程中下载的一些资产 我们在上一个教程中下载的一些资产
第 0 部分，并将它们放在我们的项目 文件夹 第 0 部分，并将它们放在我们的项目 文件夹
中 在本 中 在本
教程中使用自上而下的 tank redux 资产包，单击该资产包 教程中使用自上而下的 tank redux 资产包，单击该资产包
，您将看到几个文件夹 ，其中毛巾布、瓷砖 ，您将看到几个文件夹 ，其中毛巾布、瓷砖
布具有默认 版本和视网膜版本，以及 布具有默认 版本和视网膜版本，以及
整个教程中的任何资产 只使用默认的， 整个教程中的任何资产 只使用默认的，
点击这个呃图片你会 看到这是 点击这个呃图片你会 看到这是
由几条毛巾组成的，它们 基本上是基层的积木， 由几条毛巾组成的，它们 基本上是基层的积木，
草地，我们的 草地，我们的
敌人将奔跑 或驾驶的道路 我们要去 正在拍摄这张 敌人将奔跑 或驾驶的道路 我们要去 正在拍摄这张
图片，所以我要按 ctrl c 复制， 我要进入我的 go dot 项目 图片，所以我要按 ctrl c 复制， 我要进入我的 go dot 项目
，我们 已经在上一个教程中制作了文件夹结构， ，我们 已经在上一个教程中制作了文件夹结构，
我将点击资产环境城镇 集， 我将点击资产环境城镇 集，
然后我' 接下来将其粘贴在那里我们 需要一些资产来使地图 然后我' 接下来将其粘贴在那里我们 需要一些资产来使地图
更加生动 我们想要一些树，以便我们可以 更加生动 我们想要一些树，以便我们可以
战略性地放置它们 并限制玩家在他可以和 战略性地放置它们 并限制玩家在他可以和
不能建造的地方 以及我们想要使用的地方 一些板条箱 不能建造的地方 以及我们想要使用的地方 一些板条箱
板条箱将用于游戏 机制，玩家可以在地图开始时获得一些 板条箱将用于游戏 机制，玩家可以在地图开始时获得一些
初始现金注入 ，以确保 初始现金注入 ，以确保
在地图的开始阶段速度更快， 在地图的开始阶段速度更快，
所以我们“ 回到我们的资产 文件夹，在那里我们已经下载 所以我们“ 回到我们的资产 文件夹，在那里我们已经下载
了我们的资产包自上而下的tank redux， 我们 了我们的资产包自上而下的tank redux， 我们
可以进入精灵表并 获取精灵表和我们的绿树 可以进入精灵表并 获取精灵表和我们的绿树
我们的棕色树我们的木箱 和我们的金属箱但是我们会 必须 我们的棕色树我们的木箱 和我们的金属箱但是我们会 必须
把它们从她的精灵中剪下来 等精灵表受到各种不同大小的精灵的影响， 把它们从她的精灵中剪下来 等精灵表受到各种不同大小的精灵的影响，
所以它不是很直观，它不能 直观地工作，所以 所以它不是很直观，它不能 直观地工作，所以
我要做的是我将 使用也在这个中的单独的 png 文件 我要做的是我将 使用也在这个中的单独的 png 文件
资产包再次我们使用默认 大小 资产包再次我们使用默认 大小
而不是视网膜，在这里您会 看到我们刚刚 而不是视网膜，在这里您会 看到我们刚刚
在精灵表中看到的所有不同精灵 ，然后将每个图像分开，所以我们 在精灵表中看到的所有不同精灵 ，然后将每个图像分开，所以我们
将使用它，我将要 搜索呃 将使用它，我将要 搜索呃
树 树
和 来吧 我们得到了 绿色和棕色的大树 我将复制 和 来吧 我们得到了 绿色和棕色的大树 我将复制
这些 我们将返回到我们的 项目 我们的资产 我们的环境 这些 我们将返回到我们的 项目 我们的资产 我们的环境
我们的道具 我们将把我们的两棵树放在 那里 我们的道具 我们将把我们的两棵树放在 那里
回到我的文件夹那 也是一棵 深入 回到我的文件夹那 也是一棵 深入
到我的资产自上而下的坦克 redux png 文件默认，我要寻找 到我的资产自上而下的坦克 redux png 文件默认，我要寻找
我的板条箱 ，我想要这些自上而下 我的板条箱 ，我想要这些自上而下
的木制 和金属板条箱版本，然后我会 的木制 和金属板条箱版本，然后我会
回到我的 再次投影资产环境 回到我的 再次投影资产环境
道具，我现在将它们放在那里 我们去点我们去的项目 道具，我现在将它们放在那里 我们去点我们去的项目
你会很快看到那个栏 弹出现在它已经导入了这些文件 你会很快看到那个栏 弹出现在它已经导入了这些文件
所以当我们转到资产环境 道具时我们会看到我们在瓷砖表中找到了我们的板条箱和 所以当我们转到资产环境 道具时我们会看到我们在瓷砖表中找到了我们的板条箱和
我们的树 我们有了 我们的树 我们有了
地形的瓦片表， 现在我们在项目中拥有资产， 地形的瓦片表， 现在我们在项目中拥有资产，
我们可以开始构建第一 张地图，我们创建的每张地图都将 我们可以开始构建第一 张地图，我们创建的每张地图都将
成为 我们项目中的一个新场景，因此我们 成为 我们项目中的一个新场景，因此我们
转到场景，我们选择 新场景作为 我们正在制作一个 2d 塔 转到场景，我们选择 新场景作为 我们正在制作一个 2d 塔
防游戏 我们选择 2d 场景作为我们正在创建的这个新场景的根音符， 防游戏 我们选择 2d 场景作为我们正在创建的这个新场景的根音符，
它会自动将我们切换 它会自动将我们切换
到 2d 视口， 您可以在此处切换顶部的视口 到 2d 视口， 您可以在此处切换顶部的视口
，您可以在 3d 和 2d 之间切换 由于我们正在制作 2d 游戏，我 ，您可以在 3d 和 2d 之间切换 由于我们正在制作 2d 游戏，我
希望在接下来的 整个教程系列中都 希望在接下来的 整个教程系列中都
将保留在 将保留在
2d 视口中 到那部分 到目前为止，这还不算多，所以我们必须 2d 视口中 到那部分 到目前为止，这还不算多，所以我们必须
添加一个新的 子节点，我们将添加 添加一个新的 子节点，我们将添加
一个 tau 地图，瓦片地图将 一个 tau 地图，瓦片地图将
我们的视图拆分为单元格， 如您所见，我们现在已经有了 一个 我们的视图拆分为单元格， 如您所见，我们现在已经有了 一个
包含所有这些单元格的栅格，我们可以用特定图像绘制这些单元格中的 每一个，这 包含所有这些单元格的栅格，我们可以用特定图像绘制这些单元格中的 每一个，这
就是我们已经放入资产的瓦片表， 就是我们已经放入资产的瓦片表，
现在您要做的第一件事就是 要匹配 单元格 现在您要做的第一件事就是 要匹配 单元格
大小到您下载的资产包中的图块大小 或 大小到您下载的资产包中的图块大小 或
您 自己创建的图块集 您可以在 您 自己创建的图块集 您可以在
右侧的单元格参数下执行此操作 您可以更改 x 右侧的单元格参数下执行此操作 您可以更改 x
和 y 就这样发生了 和 y 就这样发生了
由 candy.now 提供的图块 是 64x64 所以我们现在实际上不必 由 candy.now 提供的图块 是 64x64 所以我们现在实际上不必
更改它 ，我们可以保留它，因为 更改它 ，我们可以保留它，因为
默认情况下实际上开始 绘制这些图块我们必须定义 默认情况下实际上开始 绘制这些图块我们必须定义
我们可以做的图块集 所以在顶部图块集的第二个 我们可以做的图块集 所以在顶部图块集的第二个
参数上显示 为空，现在 参数上显示 为空，现在
我们要单击它并 我们 将选择 我们要单击它并 我们 将选择
新的图块集， 当我们单击它 新的图块集， 当我们单击它
一次时，它不会真正改变太多，打开 屏幕底部的图块集编辑器 一次时，它不会真正改变太多，打开 屏幕底部的图块集编辑器
此屏幕可能更大或更小 ，因为您可以更改大小 此屏幕可能更大或更小 ，因为您可以更改大小
呃把它拖进去或拖出来，你 甚至可以 呃把它拖进去或拖出来，你 甚至可以
用左下角的双箭头把它放大成全尺寸 你可能会 用左下角的双箭头把它放大成全尺寸 你可能会
在 我的相机下面看到我的光标现在开始 在 我的相机下面看到我的光标现在开始
我们要拖动地形 图块 我们已经放入了我们的 godot 项目 我们要拖动地形 图块 我们已经放入了我们的 godot 项目
文件夹 ，我们将把它拖到这个深 文件夹 ，我们将把它拖到这个深
蓝色区域，让我们把这些图块 放在图块编辑器上，你可以使用鼠标滚轮放大和缩小， 蓝色区域，让我们把这些图块 放在图块编辑器上，你可以使用鼠标滚轮放大和缩小，
然后按住 ctrl 就可以了 确保它的 然后按住 ctrl 就可以了 确保它的
大小适合您 可以使用它我们想要做的第一件事 大小适合您 可以使用它我们想要做的第一件事
是我们想要创建 一个随机城镇 我们没有 是我们想要创建 一个随机城镇 我们没有
要使用的毛巾但我们想要解锁 捕捉选项所以我 要在 要使用的毛巾但我们想要解锁 捕捉选项所以我 要在
这里选择新的单个磁贴，我要选择 一个 随机区域 这里选择新的单个磁贴，我要选择 一个 随机区域
，现在我们得到了这个工具栏，我们现在可以为我们得到 的捕捉选项启用捕捉选项 ，现在我们得到了这个工具栏，我们现在可以为我们得到 的捕捉选项启用捕捉选项
， 以确保它捕捉 ， 以确保它捕捉
到与我们的单元格大小相等的图块大小，所以 64 x 64。我已经有了我的 选项 到与我们的单元格大小相等的图块大小，所以 64 x 64。我已经有了我的 选项
在此处打开，但可能它是这样开始的， 您将单击进入捕捉 在此处打开，但可能它是这样开始的， 您将单击进入捕捉
选项，我们将步长设置 为 64 x 64。现在您可以看到 选项，我们将步长设置 为 64 x 64。现在您可以看到
我们 绘制的图块与图块 我们 绘制的图块与图块
实际应有的位置相去甚远 但是 现在只需单击其中一个单元格， 实际应有的位置相去甚远 但是 现在只需单击其中一个单元格，
您现在 可以使用这些捕捉选项选择 64 x 64 的区域，我们可以 您现在 可以使用这些捕捉选项选择 64 x 64 的区域，我们可以
创建更多这样的图块，这样我就可以 选择 创建更多这样的图块，这样我就可以 选择
新的单个图块和新的单个图块 等， 新的单个图块和新的单个图块 等，
现在这实际上是做什么的 当我们 通过一次单击汤姆点击进入瓷砖地图 现在这实际上是做什么的 当我们 通过一次单击汤姆点击进入瓷砖地图
时 ，将我们切换回那个 2d 时 ，将我们切换回那个 2d
视口，您现在看到我们 视口，您现在看到我们
在此面板的右侧有这些瓷砖，现在 我可以单击这些 在此面板的右侧有这些瓷砖，现在 我可以单击这些
瓷砖之一，我可以开始 绘制 瓷砖之一，我可以开始 绘制
我们在光栅中的各种单元格 呃当然 有几个选项可以更快地绘制 我们在光栅中的各种单元格 呃当然 有几个选项可以更快地绘制
我们可以例如创建一个 我们可以例如创建一个
正方形我们可以使用顶部的工具 栏选择桶填充我们将 正方形我们可以使用顶部的工具 栏选择桶填充我们将
能够 立即绘制所有内容现在这里有 能够 立即绘制所有内容现在这里有
问题或 问题 人类的眼睛有一种非常快速地识别图案的倾向， 问题或 问题 人类的眼睛有一种非常快速地识别图案的倾向，
而且由于 而且由于
这些瓷砖的艺术 彼此相同，我们很快就能 这些瓷砖的艺术 彼此相同，我们很快就能
识别 出基本上方形的盒子的图案， 识别 出基本上方形的盒子的图案，
以便将其分解，我们想使用 第二条草巾 或者甚至更多的草 以便将其分解，我们想使用 第二条草巾 或者甚至更多的草
样式和一些瓷砖片 来打破该图案并使其 样式和一些瓷砖片 来打破该图案并使其
完全随机所以我们将做什么 我会右键单击所有这些 完全随机所以我们将做什么 我会右键单击所有这些
瓷砖我仍然选择了桶填充 所以如果我有 瓷砖我仍然选择了桶填充 所以如果我有
单个瓷砖 教你一点它是 如何工作的，你现在可以 单个瓷砖 教你一点它是 如何工作的，你现在可以
使用鼠标右键删除图块， 但是使用桶填充它会删除 使用鼠标右键删除图块， 但是使用桶填充它会删除
所有连接的图块，这样 可以快速删除 所有连接的图块，这样 可以快速删除
我要点击的所有内容 bac k 进入瓷砖 集 我要点击的所有内容 bac k 进入瓷砖 集
我将打开这个特定的图像， 我将删除 我将打开这个特定的图像， 我将删除
我们现在创建的所有单个瓷砖， 因为这不是最 我们现在创建的所有单个瓷砖， 因为这不是最
有效的方法， 我们现在将删除这些单个瓷砖 有效的方法， 我们现在将删除这些单个瓷砖
您已经了解了瓷砖的 工作原理 我们将创建一个新的自动毛巾自动 您已经了解了瓷砖的 工作原理 我们将创建一个新的自动毛巾自动
瓷砖 基本上允许 goto 根据某个规则集选择一个瓷砖 瓷砖 基本上允许 goto 根据某个规则集选择一个瓷砖
我将在我们到达道路后详细了解规则排序的工作 原理， 我将在我们到达道路后详细了解规则排序的工作 原理，
但对于 现在只要跟着我们走， 我将选择 但对于 现在只要跟着我们走， 我将选择
我希望 golda能够从中选择的区域，因此它将能够 我希望 golda能够从中选择的区域，因此它将能够
从该区域中进行选择， 并且在选定的磁贴中，我们在这里有子 从该区域中进行选择， 并且在选定的磁贴中，我们在这里有子
磁贴 大小和 参数是 64 磁贴 大小和 参数是 64
x 64。 所以我们选择了一个 64 x 128 的区域， x 64。 所以我们选择了一个 64 x 128 的区域，
并且使用 subtile 大小参数 并且使用 subtile 大小参数
godot 知道，好吧，那里 必须有 2000 并且他知道 godot 知道，好吧，那里 必须有 2000 并且他知道
如何切割该 区域以定义 如何切割该 区域以定义
中音瓷砖的两个瓷砖在这里我 中音瓷砖的两个瓷砖在这里我
要从两个两个切换到 三乘三 非常复杂的原因 要从两个两个切换到 三乘三 非常复杂的原因
绝对不是本教程 知道在 99.9 的情况下，您 绝对不是本教程 知道在 99.9 的情况下，您
将使用 3x3 最小，因此您 现在不必担心 将使用 3x3 最小，因此您 现在不必担心
使用位掩码我们可以设置 规则 使用位掩码我们可以设置 规则
godup 需要如何选择这些 不同的自动瓷砖 godup 需要如何选择这些 不同的自动瓷砖
我将绘制 我将绘制
由三乘三 自动瓷砖规则或 autobah 自动顶部 由三乘三 自动瓷砖规则或 autobah 自动顶部
位掩码规则创建的 3x3 框， 如果我们现在回到瓷砖地图 我们 位掩码规则创建的 3x3 框， 如果我们现在回到瓷砖地图 我们
这里只有一个瓷砖， 但那个自动瓷砖是一条自动毛巾， 这里只有一个瓷砖， 但那个自动瓷砖是一条自动毛巾，
所以我要选择那个我要 确保我在桶填充的单个窗格上 所以我要选择那个我要 确保我在桶填充的单个窗格上
，我要创建一个区域 ，我要创建一个区域
视口外这条蓝线外的一块瓷砖我想在视口外移动一块瓷砖的原因是 视口外这条蓝线外的一块瓷砖我想在视口外移动一块瓷砖的原因是
因为我们刚刚用这个位掩码给出的规则 因为我们刚刚用这个位掩码给出的规则
只允许 只允许
在瓷砖时随机选择这些草块之一 不是 在瓷砖时随机选择这些草块之一 不是
更大选择的边界，所以现在 我 有了边界，所有这些 更大选择的边界，所以现在 我 有了边界，所有这些
边界都将有 完全相同的毛巾，我们无法 边界都将有 完全相同的毛巾，我们无法
改变这就是我们设置 规则的方式， 改变这就是我们设置 规则的方式，
但是现在当我绘制中心时使用桶形油漆， 您会看到现在它 但是现在当我绘制中心时使用桶形油漆， 您会看到现在它
随机选择了一个 在这两个 图块中，例如，您可以看到此 随机选择了一个 在这两个 图块中，例如，您可以看到此
图块就在此处 与此处的样式不同 图块就在此处 与此处的样式不同
如果您 如果您
专注于一个特定元素， 那么您可以在此处的右上角看到这两个图块 这里有绿色暗 专注于一个特定元素， 那么您可以在此处的右上角看到这两个图块 这里有绿色暗
块或深绿色块， 但这里有两个较小的绿色 块或深绿色块， 但这里有两个较小的绿色
块，所以你可以看到 它现在如何 块，所以你可以看到 它现在如何
为我们绘制的所有这些不同的瓷砖随机选择草地样式， 为我们绘制的所有这些不同的瓷砖随机选择草地样式，
并结束我们的草地，我们 可以重命名它 并结束我们的草地，我们 可以重命名它
和 现在我们将其称为地面 层 下 和 现在我们将其称为地面 层 下
一层 我想在这里将两层相互叠加 一层 我想在这里将两层相互叠加
，原因我稍后会讲到我们 要去地图 我们将添加 ，原因我稍后会讲到我们 要去地图 我们将添加
另一个子节点 现在我们将添加另一个 瓦片地图 另一个子节点 现在我们将添加另一个 瓦片地图
ile 地图将成为地图的 塔 ile 地图将成为地图的 塔
排除层， 因为我们不希望玩家 排除层， 因为我们不希望玩家
能够在树上建造毛巾 我们不希望板能够 能够在树上建造毛巾 我们不希望板能够
在板条箱上建造毛巾 ，我们 不希望玩家能够 在板条箱上建造毛巾 ，我们 不希望玩家能够
在道路上建造毛巾 以便做到这一点我们将在 在道路上建造毛巾 以便做到这一点我们将在
每次玩家尝试建造塔时 每次玩家尝试建造塔时
都会 询问塔排除 tau 都会 询问塔排除 tau
地图 节点 如果玩家 将要尝试建造的单元格 地图 节点 如果玩家 将要尝试建造的单元格
如果它已经被塔占据了 它 如果它已经被塔占据了 它
基本上已经这样绘制了 我们知道什么时候 我们必须 基本上已经这样绘制了 我们知道什么时候 我们必须
基本上允许玩家建造 什么时候 基本上允许玩家建造 什么时候
不允许玩家建造我们 将在后面的教程中 介绍这些机制以及我们将如何对其进行 不允许玩家建造我们 将在后面的教程中 介绍这些机制以及我们将如何对其进行
编码， 现在我们只需要 编码， 现在我们只需要
为塔排除瓦片地图的瓦片集制作地图我们 为塔排除瓦片地图的瓦片集制作地图我们
将遵循相同的过程， 但现在我 有一个很好的机会 将遵循相同的过程， 但现在我 有一个很好的机会
了解自动平铺的工作原理， 我们将再次选择 新的瓷砖集 了解自动平铺的工作原理， 我们将再次选择 新的瓷砖集
我们将点击它 我们将我们的 地形瓷砖拖到它 我们将点击它 我们将我们的 地形瓷砖拖到它
我们将创建一个新的自动瓷砖 我将 我们将创建一个新的自动瓷砖 我将
再次选择所有道路的区域 我将确保设置了自动瓷砖位 掩码 到 3x3 最小 再次选择所有道路的区域 我将确保设置了自动瓷砖位 掩码 到 3x3 最小
，这几乎是 你从草地风格中已经知道的一切，所以 ，这几乎是 你从草地风格中已经知道的一切，所以
现在让我们来 看看 godot 如何知道该放哪条毛巾， 现在让我们来 看看 godot 如何知道该放哪条毛巾，
在此处切换到位掩码选项卡， 我们可以绘制这条道路，例如 在此处切换到位掩码选项卡， 我们可以绘制这条道路，例如
我们绘制如下 我们绘制如下
如果我们以 如果我们以
类似的方式绘制这条道路，我们 用我们的三乘三位掩码 类似的方式绘制这条道路，我们 用我们的三乘三位掩码
绘制道路实际所在的部分，当我们 绘制道路实际所在的部分，当我们
放置这些瓷砖时，它会自动平铺在道路上的实际位置，然后自动平铺。 尝试做的是尝试 放置这些瓷砖时，它会自动平铺在道路上的实际位置，然后自动平铺。 尝试做的是尝试
将边界位掩码与其他毛巾相匹配， 将边界位掩码与其他毛巾相匹配，
因此使用此设置的 godot 知道 他不能以任何方式将这些瓷砖 因此使用此设置的 godot 知道 他不能以任何方式将这些瓷砖
彼此相邻 放置，因为 彼此相邻 放置，因为
这个城镇的红色边界不可能 这个城镇的红色边界不可能
与红色边框相配 这里只有两个小 与红色边框相配 这里只有两个小
笔画，但是如果我们有一个交叉点 笔画，但是如果我们有一个交叉点
，我们要像这样的上帝一样画它 ，它知道它可以 ，我们要像这样的上帝一样画它 ，它知道它可以
将这条毛巾放在这条毛巾上， 但是它也会迫使 将这条毛巾放在这条毛巾上， 但是它也会迫使
毛巾上有一条毛巾 底部 和左侧 所以如果我们有一条 毛巾上有一条毛巾 底部 和左侧 所以如果我们有一条
毛巾 顶部和底部的这条特殊的毛巾 毛巾 顶部和底部的这条特殊的毛巾
左侧和右侧的这条 毛巾 会知道如何绘画 我可以 左侧和右侧的这条 毛巾 会知道如何绘画 我可以
向你展示这一点 所以我们去我们的塔排除我会 向你展示这一点 所以我们去我们的塔排除我会
使用这个眼睛图标暂时关闭地面层 使用这个眼睛图标暂时关闭地面层
，现在有了这个地形， 它可能仍然会自动 ，现在有了这个地形， 它可能仍然会自动
拆箱桶是的， 必须确保你在一个单一的瓷砖 拆箱桶是的， 必须确保你在一个单一的瓷砖
窗格上， 如果它不知道或 窗格上， 如果它不知道或
没有 选项它将始终选择 没有 选项它将始终选择
自动平铺中定义的第一个图块的右上角塔， 所以这行不通，因为 自动平铺中定义的第一个图块的右上角塔， 所以这行不通，因为
godot 无法找到组合， 现在 godot 仍然无法找到 godot 无法找到组合， 现在 godot 仍然无法找到
可以工作的组合，但是 如果我放置此样式 Godot 知道如何 可以工作的组合，但是 如果我放置此样式 Godot 知道如何
从顶部和底部处理这条毛巾，但这两个 从顶部和底部处理这条毛巾，但这两个
瓷砖 仍然一无所知，因为它们 瓷砖 仍然一无所知，因为它们
无法在右侧匹配， 但是 无法在右侧匹配， 但是
如果我在这里开始构建，godot 现在开始 知道如何将这些位掩码 如果我在这里开始构建，godot 现在开始 知道如何将这些位掩码
组合在一起 如果我们切换回 瓦片集，我们可以 组合在一起 如果我们切换回 瓦片集，我们可以
为这些道路中的每一条定义我不想使用 为这些道路中的每一条定义我不想使用
这个特定的瓦片，因为我 认为这不是在我们的塔防游戏中使用的非常合乎逻辑的瓦片 这个特定的瓦片，因为我 认为这不是在我们的塔防游戏中使用的非常合乎逻辑的瓦片
但我会使用 所有其他的， 但我会使用 所有其他的，
所以我们知道我们可以画这个，因为 所以我们知道我们可以画这个，因为
这些只是角落，这些 也是角落，我们走了 这些只是角落，这些 也是角落，我们走了
，我们现在把所有这些 面具都 ，我们现在把所有这些 面具都
涂上，让我们取下这些毛巾， 我现在可以画了 一条道路， 涂上，让我们取下这些毛巾， 我现在可以画了 一条道路，
而不必担心任何 特定的瓷砖及其工作方式 而不必担心任何 特定的瓷砖及其工作方式
，现在用袖珍油漆看起来很不错， 我会迅速删除它， ，现在用袖珍油漆看起来很不错， 我会迅速删除它，
我会回到我的地面层对不起， 我将激活我的地面层 我会回到我的地面层对不起， 我将激活我的地面层
，现在 我要画画 道路现在 记住了 ，现在 我要画画 道路现在 记住了
我们有视口这条蓝线 是玩家可以 我们有视口这条蓝线 是玩家可以
看到和看不到的， 如果我只是确保道路开始 看到和看不到的， 如果我只是确保道路开始
在玩家 能够看到的范围之外 在玩家 能够看到的范围之外
，那么最后 一段无关紧要 道路不 ，那么最后 一段无关紧要 道路不
正确我们可以简单地忽略我们 考虑 正确我们可以简单地忽略我们 考虑
的例如现在说好的敌人 将开始进入这里他们 的例如现在说好的敌人 将开始进入这里他们
将向上走 他们将向左走也许我们将 将向上走 他们将向左走也许我们将
允许 他们走两条不同的道路 然后这些 允许 他们走两条不同的道路 然后这些
路径再次聚集在一起 ，然后 路径再次聚集在一起 ，然后
如果我们要 如果我们要
使用右上角的按钮播放这个场景， 使用右上角的按钮播放这个场景，
或者我们必须先保存它，那么现在它可能会上升并离开地图，所以让我们这样 做我们' 将它保存在我们的场景中 或者我们必须先保存它，那么现在它可能会上升并离开地图，所以让我们这样 做我们' 将它保存在我们的场景中
，在场景中，我有一个文件夹地图 ，这是保存它的完美位置 ，在场景中，我有一个文件夹地图 ，这是保存它的完美位置
，现在如果我们玩游戏，您可以 看到我们没有 ，现在如果我们玩游戏，您可以 看到我们没有
任何负面影响， 因为我们的最后两个片段 任何负面影响， 因为我们的最后两个片段
左边和右边的道路 是错误的瓷砖，因为简单地 左边和右边的道路 是错误的瓷砖，因为简单地
没有被显示，因为它在 我们的视口之外 没有被显示，因为它在 我们的视口之外
，现在我们有一条美丽的道路，你 有一个非常快速的方法来绘制道路， ，现在我们有一条美丽的道路，你 有一个非常快速的方法来绘制道路，
而不必 一个一个选择所有这些单一的瓷砖， 而不必 一个一个选择所有这些单一的瓷砖，
现在我们必须添加一些树 和一些板条箱 所以让我们首先添加一些 现在我们必须添加一些树 和一些板条箱 所以让我们首先添加一些
树 我们将再次进入我们的图块组 树 我们将再次进入我们的图块组
我会让它更大 一点 我们将把我们的两棵树拖到这个 我会让它更大 一点 我们将把我们的两棵树拖到这个
深蓝色的树的盒子里 这很 容易 这就是将 深蓝色的树的盒子里 这很 容易 这就是将
一棵树或一条毛巾， 对于第二棵树 一棵树或一条毛巾， 对于第二棵树
，现在在我们的塔排除地图上完全相同的一条毛巾， 我们可以选择我们的 ，现在在我们的塔排除地图上完全相同的一条毛巾， 我们可以选择我们的
树 ，我们可以开始将它们绘制到 树 ，我们可以开始将它们绘制到
地图中， 现在只需向左和向右添加几棵树， 地图中， 现在只需向左和向右添加几棵树，
我们就可以 添加一些绿树 以创建一些变化 我们就可以 添加一些绿树 以创建一些变化
，现在我们 在地图上有一些树，因为 ，现在我们 在地图上有一些树，因为
我们有两个不同的 tau 地图 ，如果我们没有两个，瓷砖地图的草仍然会 我们有两个不同的 tau 地图 ，如果我们没有两个，瓷砖地图的草仍然会
显示 我们不会有草背景的图层 显示 我们不会有草背景的图层
在树下，这当然 是可取的，所以将这两层放在 在树下，这当然 是可取的，所以将这两层放在
彼此的顶部，我们可以创建一个 很好的效果而不会遇到太多麻烦， 彼此的顶部，我们可以创建一个 很好的效果而不会遇到太多麻烦，
现在绘制它的方式是 按照 现在绘制它的方式是 按照
音符的顺序，所以如果我们要 切换这些我们可以拖动这些 音符的顺序，所以如果我们要 切换这些我们可以拖动这些
注释，例如，如果我们 将 注释，例如，如果我们 将
地面指向塔排除下方，我们 将不再看到 地面指向塔排除下方，我们 将不再看到
我们的塔排除图块，因为 现在地面层绘制 我们的塔排除图块，因为 现在地面层绘制
在塔排除层上方，因此当 您使用时 在塔排除层上方，因此当 您使用时
图层确实确保您 按照您希望显示不同资产的方式将它们按正确的顺序排列， 图层确实确保您 按照您希望显示不同资产的方式将它们按正确的顺序排列，
所以 所以
我要把它 拖回来，现在我们需要添加 我要把它 拖回来，现在我们需要添加
一些板条箱， 我们将遵循与我们相同的过程 一些板条箱， 我们将遵循与我们相同的过程
点击我们的毛巾套装， 我们将把我们的金属和 点击我们的毛巾套装， 我们将把我们的金属和
木材 拖到深蓝色区域，现在 木材 拖到深蓝色区域，现在
你会 看到这些板条箱实际上不是 64 x 你会 看到这些板条箱实际上不是 64 x
64。 它们的尺寸更小，所以我们 64。 它们的尺寸更小，所以我们
要做的 是 我们将创建一个新的 我们将首先 要做的 是 我们将创建一个新的 我们将首先
选择 整个 64 64，我们将 选择 整个 64 64，我们将
在 snap 选项中更改它，我们将把 stat 设置 在 snap 选项中更改它，我们将把 stat 设置
为图像的实际大小，即 28 为图像的实际大小，即 28
x 28。现在我们将选择该区域 x 28。现在我们将选择该区域
然而，我们在背景 或毛巾地图上绘画，其单元格大小为 然而，我们在背景 或毛巾地图上绘画，其单元格大小为
64 x 64。我们希望这个板条箱 很好地位于毛巾的中间，而 64 x 64。我们希望这个板条箱 很好地位于毛巾的中间，而
不是在顶角， 所以我们要这样做 现在要对 不是在顶角， 所以我们要这样做 现在要对
这个特定的瓷砖进行纹理偏移 ，塔是 28 x 28，单元格是 64 这个特定的瓷砖进行纹理偏移 ，塔是 28 x 28，单元格是 64
x 64，这意味着我们 基本上剩下 36 个，我们需要它的 x 64，这意味着我们 基本上剩下 36 个，我们需要它的
一半，以便将纹理放置 在单元格的中间，所以 我们将 一半，以便将纹理放置 在单元格的中间，所以 我们将
纹理偏移 18 x 18。 我们将对木箱新单毛巾做完全相同的操作， 纹理偏移 18 x 18。 我们将对木箱新单毛巾做完全相同的操作，
我们仍然 选择 28 28 个步骤 我们仍然 选择 28 28 个步骤
，我们将执行 18 x 18 的纹理偏移 。现在进入 我们的塔 ，我们将执行 18 x 18 的纹理偏移 。现在进入 我们的塔
排除图块地图我们现在可以选择 这两个板条箱，正如您所看到的， 排除图块地图我们现在可以选择 这两个板条箱，正如您所看到的，
我们现在在中间很好地绘制了它们 毛巾 我们现在在中间很好地绘制了它们 毛巾
或牢房里的 那将是我们的板条箱，游戏 或牢房里的 那将是我们的板条箱，游戏
将能够摧毁它 以获得初始现金注入并 将能够摧毁它 以获得初始现金注入并
在游戏的开始阶段建造一些额外的塔 在游戏的开始阶段建造一些额外的塔
如果你喜欢这个视频，你的塔防游戏的第一张地图然后粉碎那个 喜欢按钮并点击订阅如果你 如果你喜欢这个视频，你的塔防游戏的第一张地图然后粉碎那个 喜欢按钮并点击订阅如果你
还没有 在 Twitter 和 reddit 上转发视频 还没有 在 Twitter 和 reddit 上转发视频
给其他游戏开发者或 与你的朋友分享 给其他游戏开发者或 与你的朋友分享
它对我有很大的帮助 创作者 它对我有很大的帮助 创作者
现在正在制作这些系列 在下一个教程中 我们将在塔上工作 现在正在制作这些系列 在下一个教程中 我们将在塔上工作
所以请继续关注在此期间我 建议您可以 所以请继续关注在此期间我 建议您可以
使用我今天教给您的技能来练习一下 使用我今天教给您的技能来练习一下
也许您 可以创建一个新场景 称之为第二个地图 也许您 可以创建一个新场景 称之为第二个地图
使用那些沙漠瓷砖和沙漠道路 来看看您是否可以创建第二张地图 使用那些沙漠瓷砖和沙漠道路 来看看您是否可以创建第二张地图
这种练习将帮助 您增强肌肉记忆 这种练习将帮助 您增强肌肉记忆
并确保您保留那些 技能 我今天教你 并确保您保留那些 技能 我今天教你
祝你好运，我会 在下一个教程中见到你，直到那时继续玩游戏 祝你好运，我会 在下一个教程中见到你，直到那时继续玩游戏
继续编码，再见，伙计们 继续编码，再见，伙计们