# 在 Godot 中开始使用等距瓦片地图：快速指南

> 本文介绍了等距投影的概念及其在游戏中的应用，并详细讲解了如何在 Godot 引擎中配置和使用等距瓦片地图。文章涵盖了瓦片地图节点的基本设置、Y 排序、瓦片大小配置、多瓦片对象创建以及瓦片地图层的使用等高级功能。

- Author: Charliefoo
- Published: 2025-03-22
- Last modified: 2025-03-22
- Canonical: https://foo-z.com/blog/others8/
- Category: 它山之石
- Tags: 游戏开发, Godot引擎, 等距投影, 瓦片地图, 2D游戏

等距游戏起源于 20 世纪 70 年代末和 80 年代初。从那时起，它们被用于各种类型的游戏，如策略游戏、模拟游戏、角色扮演游戏和益智游戏。如今，等距游戏仍然被独立开发者和 AAA 工作室开发。等距游戏提供独特的视觉风格和游戏玩法可能性。

在本文中，我将简要介绍等距投影和等距游戏，然后我们将深入探讨如何使用 Godot 的瓦片地图节点创建令人惊叹的等距游戏。让我们开始吧！

## 什么是等距投影？

等距投影是一种将 3D 世界投影到 2D 空间的方法，就像一张纸或电脑显示器。它属于正交投影类别的相机投影。在等距投影中，物体可能会失去一些深度，看起来比自然看到的 3D 世界更平坦。这是因为等距物体没有消失点；相反，物体的每个轴与世界轴平行。

在等距环境中，物体看起来大小相同，无论它们与查看者或相机的距离有多远。相比之下，透视投影会使远处的物体看起来更小，而近处的物体看起来更大。

如需等距投影的更详细解释，请查看《等距游戏的最佳示例及其工作原理》一文。

**相机投影类型**

### 具有等距投影的游戏示例

有许多等距游戏示例来自各种类型，如策略游戏、城市建设者和 RPG。一些著名的经典等距游戏包括《红色警戒 2》、《魔兽争霸 2》、《星际争霸 1》、《帝国时代》系列、《模拟城市》系列、《特洛伊》系列、《博德之门 1》、《博德之门 2》等。

如果你重温这些游戏中的任何一个（或观看游戏玩法视频），你会注意到相机始终保持相同的角度，无论远近的物体看起来大小相同。

### 视频游戏中使用的其他类型相机投影

年来，视频游戏开发者使用了各种投影类型。所有这些投影都提供了将 3D 世界投影到 2D 屏幕的不同方式。以下是其中一些最受欢迎的类型：

- **透视投影**：这种相机投影模仿人眼的视觉，提供 3D 视图，通常用于第一人称射击游戏、第三人称射击游戏、角色扮演游戏、冒险游戏以及体育和赛车游戏中。
- **俯视投影**：也称为鸟瞰视图，这种投影将相机直接置于世界正上方并朝下。像原版《侠盗猎车手》这样的经典游戏使用了这种技术。
- **双等距 / 三等距投影**：正交投影组包括几种由相机角度区分的投影类型。相机角度定义了物体宽度和高度的比例。

---

---

## 如何在 Godot 中开发等距游戏

Godot 为开发等距游戏提供了出色的框架。Godot 中的瓦片地图节点允许你将一个精灵表切割成精灵图像，并使用你选择的相机投影将它们投影到屏幕上。在处理瓦片地图节点的等距投影时，有多种选项可用。在本文中，重点将放在最常用的等距投影类型上。

使用等距视图创建瓦片地图节点相对简单。为此，请按照以下步骤操作：

1. 准备一个包含所需瓦片的精灵表作为单个图像文件（通常是带有 alpha 通道的 png 文件），并将其导入你的 Godot 项目中。
2. 在场景中创建一个新的瓦片地图节点并选择它。
3. 在检查器面板中，生成一个新的瓦片集资源。
4. 在“瓦片形状”属性中选择“等距”投影，并将“瓦片布局”和“瓦片偏移轴”属性保留为默认值。
5. 转到屏幕底部的瓦片集选项卡，并附加导入的精灵表图像。
6. 配置瓦片集，使所有瓦片都准备好。如果你有需要将多个瓦片拼接在一起的复杂对象，请继续阅读。我在后面解决了这个问题。

**瓦片集属性**

## 在 Godot 中配置瓦片地图节点的等距相机投影

除了指定瓦片地图的相机投影外，你还需要调整几个参数以确保瓦片的正确绘制和行为。第一步是启用 Y 排序，第二步是定义瓦片集的瓦片大小以及瓦片地图节点的瓦片大小。

### 什么是 Y 排序以及如何正确排序瓦片

Y 排序是排列屏幕上可见对象绘制顺序的过程。在等距瓦片地图的情况下，每个瓦片按其指定顺序绘制。Y 排序错误可能导致视觉问题。通常，瓦片地图上较低的瓦片先于上方的瓦片绘制。按此顺序绘制可以创建 3D 相机的错觉，而实际上是在 2D 空间中操作。

一旦你在 Godot 中创建了一个瓦片地图节点并将其配置为具有等距投影，你会在瓦片地图节点旁边看到一个警告，指出瓦片地图节点和所有内部层都应该启用 Y 排序。忽略此警告可能会导致瓦片的绘制顺序不正确，并导致视觉不一致。

为了解决这些问题，请按照以下步骤操作：

1. 启用瓦片地图节点的“启用 Y 排序”属性（检查器 -> CanvasItem -> 排序）。
2. 启用瓦片地图节点中每个层的“启用 Y 排序”属性（检查器 -> 瓦片地图 -> 层）。

**瓦片地图排序属性**

### 瓦片集中的瓦片大小与瓦片地图中的瓦片大小的区别

Godot 区分在瓦片集和瓦片地图中定义的瓦片大小。理解这些区别至关重要，因为随着你的瓦片地图的发展，这可以为你节省大量头疼的时间。

- **瓦片集中的瓦片大小**：指定精灵表中瓦片图像的大小。它包括将绘制在屏幕上的实际图像像素。
- **瓦片地图中的瓦片大小**：指定瓦片的表面大小。每个瓦片有一个 Z 组件，定义瓦片中对象的高度。由于瓦片部分重叠绘制，瓦片地图中定义的瓦片大小仅包括表面部分，不考虑对象的深度。此信息有助于瓦片地图节点了解瓦片中每个对象的精确遮挡情况。

**瓦片大小图示**

## Godot 中瓦片地图节点的高级功能

在大多数情况下，你需要利用瓦片地图的更高级功能，例如多瓦片对象或使用层将瓦片堆叠在彼此之上。这些功能使你能够在游戏中生成多样性和复杂性的瓦片地图。让我们逐一探讨这些功能。

### 创建多瓦片对象并将其对齐到等距网格

多瓦片对象是瓦片集中定义的多个瓦片的组合。例如，瓦片集中的瓦片大小可能设置为 64×32 的矩形，但一个跨越 3 个瓦片的高对象可能需要一个 64×96 的瓦片。Godot 允许你组合瓦片并创建复杂对象。

#### **如何在 Godot 中的瓦片集中定义多瓦片对象**

在 Godot 中定义多瓦片对象相对容易。打开瓦片集编辑器选项卡并按照以下步骤操作：

1. 点击“设置”按钮以启用图集设置模式。
2. 按住键盘上的 Shift 键。
3. 在瓦片区域中，按住鼠标左键并拖动选择所有要组合的瓦片。
4. 松开鼠标键和键盘键以创建复杂对象。

一旦创建了对象，你将看到一个包含所有选定瓦片的较大瓦片。现在，你可以通过瓦片地图编辑器选项卡将该大瓦片放置在地图上。

**多瓦片对象**

#### **使用“纹理原点”属性将多瓦片对象对齐到等距网格**

如果你按照上述步骤创建了多瓦片对象并尝试将其放置在地图上，你可能注意到瓦片并没有正好放置在鼠标光标所在的位置。这是因为复杂瓦片的原点仍在其中心。如果这对你有效 - 很好！如果不是 - 你可能需要更改对象的原点点。对我来说，瓦片的原点最直观的位置是在瓦片的左下角。

要更改瓦片的原点点，请打开瓦片集编辑器选项卡并按照以下步骤操作：

1. 点击“选择”按钮以启用瓦片选择模式。
2. 选择要修改的大瓦片。
3. 在左侧出现的“基础瓦片”菜单中，打开“渲染”部分。
4. 更改“纹理原点”向量以偏移瓦片的实际原点点。

当你更改原点值时，你会注意到瓦片上会出现一个菱形标记新的原点点位置。请注意，如果位置超出瓦片的范围，将显示带有新输入偏移量的文本。

**纹理原点设置**

### 使用瓦片地图层将瓦片堆叠在彼此之上

瓦片地图层允许你将瓦片放置在彼此之上，而不会覆盖地图上已有的瓦片。

例如，城堡的地板可以是瓦片地图的最底层，墙壁、椅子、桌子、门和其他装饰品可以放置在第二层，吊灯可以放置在第三层。

层堆叠确保无论游戏中发生什么，绘制顺序始终相同，这意味着桌子、椅子和装饰品将始终绘制在地板之上，吊灯将始终绘制在装饰品之上。毕竟，桌子和椅子在地板之下是不合逻辑的，对吧？

**瓦片地图层列表**

#### **如何使用瓦片地图层将多个瓦片堆叠在彼此之上**

要创建多个瓦片地图层，请打开瓦片地图节点的检查器面板并按照以下步骤操作：

1. 点击瓦片地图层列表中的“添加元素”按钮（检查器 -> 瓦片地图 -> 层）。
2. 给新层一个适当的名称并启用“启用 Y 排序”复选框。
3. 更新“Z 索引”字段以表示新层。较低的值在后面渲染，而较高的值在前面（更靠近相机）渲染。
4. 转到瓦片地图编辑器选项卡并选择当前目标层（选项卡的右上角）。
5. 选择一个瓦片并开始将其放置在地图上。

你会注意到，当你切换层时，除了选定层外的所有其他层都会变暗，以便你可以清楚地看到当前层。如果你希望了解更多关于瓦片地图层的信息，请查看《Godot 4 瓦片地图层：你需要知道的一切》一文。

#### **重新排列瓦片地图层以正确绘制瓦片**

瓦片地图层列表中的层顺序并不决定绘制顺序；相反，“Z 索引”字段决定。虽然当所有层具有相同的 Z 索引时，层列表中的顺序会改变瓦片的绘制顺序，但来自不同层的瓦片仍然可能混合并产生视觉问题。确定瓦片地图中层绘制顺序的最有效方法是为每个层定义 Z 索引。层从低 Z 索引到高 Z 索引绘制。

---

---

## 我对 Godot 中等距瓦片地图的看法

Godot 为等距游戏提供了大量的功能。用户界面并不总是直观的，但一旦你理解了概念，事情就会变得相对顺利。如需更深入地了解瓦片地图节点及其功能，你可以继续阅读官方 Godot 瓦片地图文档：https://docs.godotengine.org/en/stable/tutorials/2d/using_tilemaps.html。

如果你希望了解更多关于 Godot 和游戏开发的信息，请探索 Night Quest Games 博客。你会找到许多可以帮助你踏上游戏开发之旅的文章。祝你好运！

如果这篇文章对你有帮助，请考虑通过捐款支持这个博客。你的贡献非常受欢迎，并允许我继续维护和开发这个博客。谢谢！

---

**引用地址**  
原文链接：https://www.nightquestgames.com/introducing-isometric-tilemaps-in-godot/

> 本站 RSS地址已更新，麻烦读者朋友们重新订阅一次喔！

---

> 💡 感谢您的观看！欢迎分享文章，或是来信与我交流。
