Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

2D 简介

Godot 的 2D 游戏开发工具包括专用的 2D 渲染引擎、物理系统以及专门为打造2D 体验而量身定制的功能。你可以使用 TileMap 系统高效地设计关卡,通过 2D 精灵或 剪影(Cutout)动画为角色添加动画,并利用 2D 光照实现动态的场景照明。内置的 2D 粒子系统允许你创建复杂的视觉效果,Godot 还支持自定义着色器来增强图形表现。这些功能,结合 Godot 的易用性和灵活性,为创建引人入胜的 2D 游戏提供了坚实的基础。

../../_images/2d_platformer_demo.webp

2D 平台游戏演示可在资产库中获取。

本页将向你展示 2D 工作区并进行介绍。

小技巧

3D 入门介绍见 3D 简介

2D 工作区

你将使用 2D 工作区来处理 2D 场景、设计关卡或创建用户界面。要切换到 2D 工作区,你可以从场景树中选择一个 2D 节点,或者使用位于编辑器顶部边缘的工作区选择器:

../../_images/2d_editor_viewport.webp

与 3D 类似,你可以使用工作区选择器下方的标签页在当前打开的多个场景之间切换,或使用加号(+)按钮创建新场景。左右两侧的停靠面板应该与 编辑器介绍 中的内容相似。

场景选择器下方是主工具栏,主工具栏下方是 2D 视口。

你可以从文件系统面板中拖放兼容的节点,将其作为节点添加到到视口中。拖放操作会将拖动的节点添加为选中节点的同级节点(如果选中了根节点,则添加为子节点)。在释放时按住 Shift 键会将节点添加为选中节点的子节点。在释放时按住 Alt 键会将节点添加为根节点的子节点。如果在释放时按住 Alt + Shift 键,则可以在适用的情况下选择节点类型。

主工具栏

主工具栏中的一些按钮与 3D 工作区中的按钮相同。如果将鼠标光标悬停在按钮上超过一秒钟,会显示简短的说明以及快捷键。如果执行其他按键操作,某些按钮可能具有附加功能。下面从左到右提供了每个按钮主要功能及其默认快捷键的概述:

../../_images/2d_toolbar.webp
  • 选择模式 (Q):允许在视口中选择节点。在视口中左键单击节点即可选择它。左键单击并拖动矩形框,松开后即可选择矩形边界内的所有节点。按住 Shift 键进行选择时,可以向当前选择中添加更多节点。按住 Shift 键单击已选中的节点可以取消选择该节点。在此模式下,你可以拖动选中的节点来移动它们,按下 Ctrl 键可以临时切换到旋转模式,或者使用红色圆圈来缩放节点。如果选择了多个节点,则只能进行移动和旋转操作。在此模式下,即使启用了吸附功能,旋转和缩放也不会使用吸附选项。

  • 移动模式 (W):为选中的节点启用移动(或平移)模式。更多详情请参阅 2D 视口

  • 旋转模式 (E):为选中的节点启用旋转模式。详情请参阅 2D 视口

  • 缩放模式 (S): 启用缩放并在选定节点的两个轴上显示缩放控制柄。更多详情请参阅 2D 视口

  • 显示点击位置的可选节点列表:如描述所示,当点击区域内有多个节点时,该功能会以右键菜单的形式提供点击位置处可选节点的列表。

  • Rotation pivot: Sets the rotation pivot to rotate node(s) around. An added node has its rotation pivot at x: 0, y: 0, by default, with exceptions. For example, the default pivot for a Sprite2D is its center if the centered property is set to true. If you would like to change the rotation pivot of a node, click this button and choose a new location by left clicking. The node rotates considering this point. If you have multiple nodes selected, this icon will add a temporary pivot to be used commonly by all selected nodes. Pressing Shift and clicking this button will create the pivot at the center of selected nodes. If any of the snap options are enabled, the pivot will also snap to them when dragged.

  • 平移模式G):允许你在视口中导航而不会意外选择任何节点。在其他模式下,你也可以按住 空格键 并用鼠标左键拖动来实现相同的效果。

  • 标尺模式:启用后,点击视口以显示当前的全局 x 和 y 坐标。从一个位置拖动到另一个位置可以测量像素距离。如果你对角拖动,它将绘制一个三角形并显示 x、y 方向的单独距离以及到目标的总距离,包括与坐标轴的角度(以度为单位)。按下 R 键可激活标尺。如果启用了吸附功能,它还会以网格数为单位显示测量结果:

../../_images/2d_ruler_with_snap.webp

启用吸附功能时使用标尺。

  • 使用智能吸附:切换移动、旋转和缩放模式下的智能吸附功能,以及旋转轴心。你可以通过吸附工具旁边的三点菜单进行自定义设置。

  • 使用网格吸附:切换移动和缩放模式、旋转轴心以及标尺的网格吸附功能。你可以通过吸附工具旁边的三点菜单进行自定义设置。

你可以自定义网格设置,使移动模式、旋转模式、缩放模式、标尺和旋转轴心都使用吸附功能。使用三点菜单进行设置:

../../_images/2d_snapping_options_menu.webp
  • 使用旋转吸附:使用配置的旋转设置来切换吸附功能。

  • 使用缩放吸附:切换是否使用配置的缩放步长设置进行吸附。

  • 相对吸附:切换是否基于所选节点的当前变换值进行吸附。例如,如果网格设置为 32x32 像素,且所选节点位于 x: 1, y: 1 ,那么启用此选项将暂时将网格偏移 x: 1, y: 1

  • 使用像素吸附:切换是否使用子像素进行吸附。如果启用,位置值将为整数;如果禁用,则允许使用小数形式进行子像素移动。对于运行时属性,Node2D 节点可以考虑查看 项目设置 > 渲染 > 2D > 吸附 属性,Control 节点可以考虑查看 项目设置 > GUI > 常规 > 控件吸附到像素 属性。

  • 智能吸附:提供了一组选项,可以在启用时吸附到特定位置:

    • 吸附到父级:吸附到父级的边缘。例如,当启用此选项时,缩放子控制节点会吸附到父级的边界。

    • 吸附到节点锚点:吸附到节点的锚点。例如,如果控制节点的锚点位于不同位置,启用此选项后将吸附到锚点的边和角。

    • 吸附到节点边缘:将节点吸附到边缘,例如用于旋转轴点或锚点定位。

    • 吸附到节点中心:吸附到节点的中心,例如用于旋转轴点或锚点定位。

    • 吸附到其他节点:在移动或缩放时吸附到其他节点。有助于在编辑器中对齐节点。

    • 吸附到参考线:吸附时使用水平或垂直标尺绘制的自定义参考线。有关标尺和参考线的更多信息,请参见下文。

../../_images/2d_snapping_options.webp
  • 设置吸附:打开如上所示的窗口,提供一组吸附参数。

    • 栅格偏移:允许你相对于原点对栅格进行偏移。可以分别调整 xy 的值。

    • 栅格步长:每个栅格之间的距离(以像素为单位)。 xy 可以单独调整。

    • 主线间隔:绘制无限延伸的主栅格线时,两条主栅格线之间的线数。

    • 旋转偏移:设置用于偏移旋转吸附的量。

    • 旋转步长:定义吸附角度。例如,设置为 15 表示如果启用了旋转吸附并使用旋转模式,节点将以 15 度的倍数旋转并吸附。

    • 缩放步长:定义缩放增量因子。例如,如果设置为 0.1,当启用缩放吸附并使用缩放模式时,将以 0.1 的步长进行缩放。

  • 锁定选中节点Ctrl + L)。锁定选中的节点,防止在视口中选择和移动。再次点击按钮(或使用 Ctrl + Shift + L)可以解锁选中的节点。锁定的节点只能在场景树中选择。在场景树中,可以通过节点名称旁边的挂锁图标(🔒)轻松识别它们。点击这个挂锁图标(🔒)也可以解锁节点。

  • 编组所选节点Ctrl + G)。如果已经选择了任何子节点,该操作将允许选择根节点。使用 Ctrl + G 可以取消编组。此外,点击场景树中的取消编组按钮也会执行相同的操作。

  • 骨架选项:提供用于处理 Skeleton2D 和 Bone2D 的选项。

    • 显示骨骼:切换所选节点的骨骼可见性。

    • 将节点转换为 Bone2D 节点:将选中的节点转换为 Bone2D 节点。

参见

更多骨架相关的信息,请参见 剪纸动画

  • 视图 菜单:提供了控制视口视图的选项。由于这些选项很大程度上取决于视口,相关内容将在 2D 视口 章节中详细介绍。

在视图菜单旁边,可能会显示额外的按钮。在本章开头的工具栏图片中,由于选中了一个 Sprite2D,因此显示了一个额外的 Sprite2D 按钮。此菜单提供了一些快速操作和工具,用于处理特定节点或选区。例如,在绘制多边形时,它提供了添加、修改或删除点的按钮。

坐标系

2D 编辑器与 3D 不同,它只有两个轴:xy。视角也是固定的。

在视口中,你会看到两条不同颜色的线无限延伸穿过屏幕:红色代表 x 轴,绿色代表 y 轴。在 Godot 中,向右和向下是正方向。这两条线相交的位置就是原点:x: 0, y: 0

根节点在添加后,其原点将位于此位置。在选中节点后切换到 movescale 模式,将在节点的偏移位置显示小工具。小工具将指向 x 轴和 y 轴的正方向。在移动模式下,你可以拖动绿线仅在 y 轴上移动。同样地,你可以按住红线仅在 x 轴上移动。

在缩放模式下,小工具将显示为方形。你可以按住并拖动绿色和红色方块来沿 yx 轴缩放节点。向负方向拖动会使节点水平或垂直翻转。

2D 视口

如果你计划以可视化的方式设计关卡或用户界面,视口将是你花费最多时间的区域:

../../_images/2d_editor_viewport_with_viewmenu.webp

使用鼠标中键点击并拖动可以平移视图。视口右侧或底部的滚动条也可以移动视图。另外,也可以使用 GSpace 键。如果你启用了 编辑器设置 > 编辑器 > 平移 > 简单平移 ,你可以直接使用 Space 键来激活平移,而无需拖动。

视口的左上角有一些按钮。 居中视图 会将选中的节点居中显示在屏幕上。如果你有一个包含许多节点的大型场景,并且想要查看在场景树中选中的节点时,这个功能会很有用。旁边是缩放控件。 - 缩小, + 放大,点击带百分比的数字会重置为 100%。或者你也可以使用鼠标中键滚动来放大(向上滚动)和缩小(向下滚动)。

视口左侧和顶部的黑色条是 标尺。你可以使用它们来在视口中定位。默认情况下,标尺会显示视口的像素坐标,以 100 像素为步长进行编号。更改缩放比例会改变显示的值。启用 栅格吸附 (Grid Snap) 或更改吸附选项会更新标尺的比例和显示的值。

你也可以创建多个自定义参考线来帮助你进行测量或对齐节点:

../../_images/2d_editor_guidelines.webp

如果场景中至少有一个节点,你可以通过从水平或垂直标尺向视口拖动来创建参考线。此时将出现一条紫色的参考线,它将显示其位置,并在你松开鼠标后保持在那里。你可以通过从标尺交叉处的灰色方块拖动来同时创建水平和垂直参考线。可以通过将参考线拖回各自的标尺来重新定位,也可以通过将它们完全拖回标尺来移除参考线。

你也可以使用 智能吸附 (Smart Snap)菜单启用对齐到创建的参考线。

备注

如果你无法创建辅助线,或看不到之前创建的辅助线,请确保它们已通过视口的 View 菜单设置为可见。默认情况下,按下 Y 键可以切换辅助线的可见性。此外,请确保场景中至少有一个节点。

根据工具栏中选择的工具,在视口中左键点击将执行主要操作。例如, 选择模式 (Select Mode)将选择视口中左键点击的节点。有时,左键点击可以与修饰键(例如 CtrlShift)组合使用来执行次要操作。例如,在 Select(选择)或 Move(移动)模式下拖动节点时按住 Shift 键,将在移动时尝试将节点吸附到单个轴上。

在视口中右键点击会提供两个选项:在所选位置创建节点或实例化场景。如果至少选择了一个节点,右键点击还会提供将所选节点移动到此位置的选项。

视口有一个 视图 (View)菜单,提供了多个选项来改变视口的显示效果:

  • 网格:允许你始终显示网格、仅在启用吸附时显示或完全不显示。你也可以通过提供的选项来切换显示状态。

  • 显示辅助信息:切换节点的临时轮廓显示,如果已启动变换操作,则会显示之前的变换属性(位置、缩放或旋转)。对于 Control 节点,还会显示尺寸参数。这对于查看变化量很有帮助。

  • 显示标尺:切换水平和垂直标尺的可见性。有关标尺的更多信息,请参阅 2D 视口

  • 显示辅助线:切换已创建辅助线的可见性。有关如何创建辅助线,请参阅 2D 视口

  • 显示原点:切换在 x: 0, y: 0 处绘制的绿色和红色原点线的显示。

  • 显示视口:切换游戏默认视口的可见性,由一个靛蓝色的矩形表示。它也是桌面平台上的默认窗口大小,你可以通过进入 项目设置 > 显示 > 窗口 > 大小 并设置 视口宽度视口高度 来更改。

  • 小工具:切换 Position (以十字图标显示)、 Lock (以挂锁图标显示)、 Groups (以两个方块图标显示)和 Transformation (以绿色和红色线条显示)指示器的可见性。

  • 居中选中项:与视口内的 居中视图 按钮功能相同。将选中的节点居中显示在视口中。默认快捷键为 F

  • Frame to Selection: Similar to Center Selection, but also changes the zoom factor to fit the contents in the screen. Shift + F is the default shortcut.

  • 清除参考线:删除屏幕上的所有参考线。如果你计划稍后继续使用它们,需要重新创建。

  • 预览画布缩放:在编辑器中的缩放倍数或视口视图发生变化时,切换画布缩放的预览。这对于在不运行游戏的情况下查看控件在缩放和移动后的外观非常有用。

  • 预览主题:允许在可用主题中选择,从而更改编辑器中控件项的外观,无需运行游戏。

Node2D 和 Control 节点

CanvasItem 是 2D 的基础节点。Node2D 是 2D 游戏对象的基础节点,Control 是所有 GUI 的基础节点。对于 3D,Godot 使用 Node3D 节点。

2D 中的 3D

可以在 2D 屏幕上显示 3D 场景,你可以参考 3D in 2D Viewport 演示。

../../_images/3d_in_2d_demo_editor.webp