通过制作 2D 平台游戏学习 Godot 4 — 第 1 部分:项目编辑器和概述
如果你对复古游戏史感兴趣,你就会知道任天堂在 1981 年发行《大金刚》后获得的成功简直就是一个奇迹。《大金刚》不仅为我们带来了我们挚爱的马里奥(当时名为 Jumpman),还拯救了任天堂免于彻底的财务困境。在本系列教程中,我们将追随这些伟大人物的脚步——尝试制作一款类似《大金刚》的游戏,名为《城堡攀登者》。
图 1:《大金刚》经典游戏
这款游戏与街机游戏《大金刚》类似,主角是一位国王,他需要躲避猪头敌人投掷的炸弹和箱子,一路爬到城堡顶部,才能逃到下一关。与《Jumpan》不同,我们没有公主需要拯救,但这仅仅是因为我们的《国王与猪头》素材包中没有落难公主!
图 2:城堡攀登者的最终产品
您可以在此处观看该系列的预览视频:
本系列教程将涵盖以下几个方面:
- 玩家动画和动作
- 通过全局脚本获取玩家和障碍物统计数据
- 攻击激活器、生命值和得分提升的拾取物
- 敌人动画
- 玩家死亡、伤害和攻击
- 带有碰撞和相机的游戏地图
- 移动平台和排名系统
- 障碍的产生
- 等级进展
- 暂停、保存和加载
- 音乐与音效
- 粒子效果
- 完整的 GUI
本教程使用 Godot 4.0.3 版本——由于引擎不断更新,如果您使用更高版本,可能会出现错误!请随时就本系列教程的质量提供反馈,或者如果您遇到任何错误,请通知我,以便我们能够妥善修复本系列教程中存在的问题。现在,让我们开始吧!
您将在本部分中学习到的内容:
- 如何浏览 Godot 编辑器。
- 如何更改您的项目设置。
- 如何添加场景和节点。
编辑概述
在开始编码和疯狂操作之前,我们首先需要了解 Godot 编辑器的布局。如果您已经熟悉该编辑器,可以直接跳到本部分的“项目设置”部分;如果不熟悉,我建议您快速浏览一下编辑器。
如果您还没有安装 Godot,请前往其网站下载最新版本。下载完成后,解压文件。由于 Godot 无需安装,您可以直接将其拖到计算机上您想要的存储位置,或者直接从“下载”文件夹中打开。
启动可执行文件,您将看到“项目管理器”窗口。在这里,您可以创建新项目、加载现有项目,或扫描整个目录以导入多个项目。
在顶部,你会看到一个名为“资源库项目”的菜单。在这里,你可以下载并查找社区成员为 Godot 制作的项目、模板或演示。它与其他在线资源市场(例如 Itch.io、Unreal Marketplace 或 Unity Asset Store)类似。唯一的区别是,这里的所有内容都是免费的。
要创建项目,我们需要点击“新建项目”,然后会出现一个窗口,让我们选择项目的保存位置并为其命名。我将其命名为“Castle Climbers”,不过你也可以随意命名。
可用的三种渲染方法是:
- **Forward+ 模式,适用于图形和渲染更密集的更高档的游戏项目。
- 移动模式,一般用于手机游戏。
- 兼容模式,使用与 Godot 3 相同的渲染器,这意味着图形和渲染质量较低,使其更适合较旧或规格较低的设备。
我的集成显卡与 Godot 4 支持的 Vulkan 版本存在兼容性问题,所以我需要选择兼容模式。不过这倒不是什么大问题,因为它仍然运行得非常顺畅。您可以点击此处了解更多关于新渲染更新的信息。
选择“创建和编辑”,你就会神奇地进入项目窗口。顶部是工作区,也就是我们完成任务的空间。默认情况下,3D 功能始终处于活动状态。点击其他选项,就可以在不同的工作区之间切换。
图 2:工作场所导航的鼠标输入
现在,让我们看一下每个工作区:
- 2D 工作区用于编辑和查看 2D 游戏的 2D 场景。
- 3D 工作区用于编辑和查看3D游戏的3D场景。
- 脚本 工作区是我们编写、编辑和查看脚本的代码编辑器。
- AssetLib工作区是您可以在项目中免费使用的 资产库项目。
窗口左侧的面板是场景停靠栏 (Scene Dock)。它列出了当前打开的场景的内容,您还可以在此停靠栏中向场景添加新节点。Godot 中的场景是节点的主要载体或容器,而节点是游戏的主要构建块。
不同的节点具有不同的功能,例如,碰撞形状和动画精灵各有其用途,因此,能够将它们组合在一个场景中,使我们能够为游戏创建具有更复杂功能的组件。场景还可以实例化其他场景,例如,在世界场景中创建敌人场景。我建议您查看 Godot 文档中的“节点和场景”部分。我绘制了一个 Mural 面板,作为节点和场景的示例,您可以在此处查看。
另一个面板称为导入面板,您可以在此设置或编辑已添加到项目文件夹的资产(例如图像、字体和音频文件)的属性,然后可以使用保存的属性重新导入它们。
在场景和导入停靠栏下方,您将看到“文件系统”面板,您可以在此管理项目文件、文件夹和资源。您可以将新资源拖拽到此面板,将其导入项目,也可以添加新的文件夹、脚本、场景等。
窗口右侧的面板称为检查器面板,您可以在其中查看和编辑当前选定节点的属性。
旁边的节点面板可用于连接信号并为节点添加组。组可用于将不同类型的场景或节点(例如,我们的 NPC)分组,以便玩家知道如何与这些节点交互。信号可用于多种情况,例如,通知游戏已按下按钮或动画已播放完毕。这使我们能够告诉游戏在发生某些事件时该做什么。大多数节点都内置了信号,例如按钮和动画播放器,但我们也可以创建自己的自定义信号。我绘制了一块 Mural 板,作为自定义信号和内置信号的示例,您可以在此处查看。
在 Inspector 和 Node Dock 上方,你会看到用于播放、暂停、重启或停止场景的选项。我们将在这里启动游戏进行测试。
编辑器窗口底部包含输出面板、调试器控制台、音频混音器、搜索结果面板以及动画和着色器编辑器。它们默认折叠以节省屏幕空间,但点击后会最大化。某些可自定义的节点(例如 Tilemap 或动画播放器节点)会向此窗口添加新选项。
让我们回顾一下每个现有的选项:
-
输出 控制台将返回我们添加到代码中用于测试的打印消息或通知。
-
调试器 控制台用于(您猜对了)调试和错误处理。
-
音频 混音器用于编辑音频文件。
-
动画 编辑器用于为动画播放器节点创建动画。
在上方的功能区或菜单栏中,您有几个选项。您可以在“场景”选项卡下管理场景。您可以添加、保存、打开或关闭场景。
您可以在“项目”选项卡下管理项目设置和属性(例如输入操作、窗口大小、自动加载单例等)。您也可以从这里退出“项目管理器”窗口。我们也将从这里导出项目。
您可以在“调试”选项卡中启用或禁用调试工具,例如,让碰撞可见,以便您可以看到碰撞事件是否在游戏过程中执行。
“编辑器”选项卡允许您更改与编辑器相关的设置,例如,您可以更改其当前布局或主题。您甚至可以截取当前窗口的屏幕截图。
最后,“帮助”选项卡可让您快速访问 Godot 4 文档和社区论坛。如果您对使用编辑器感到更自在,我们可以继续设置我们的项目。
项目设置
您可以从我的驱动器下载本教程所需的资源。所有资源均来自 Itch.io,您可以在下面的 GitHub 存储库中找到每个资源的单独来源。我也将这个调色板用于此游戏。
该项目的完整源代码可以在其GitHub仓库中找到。我不建议您在项目尚未完成的情况下阅读源代码,因为您可能会对尚未编写的代码感到困惑!我会在每个部分的末尾提供单独的源代码版本链接。您还会发现部分内容末尾添加了“故障排除”部分,这将指导您在开发过程中查找和修复项目中的错误。调试是一个持续的过程,我试图教您如何以比较务实的方式构建游戏。
如果你还没有,那就打开 Godot 创建一个新项目吧。我将项目命名为“Castle Climbers”,并将其保存在一个专门的文件夹中,方便我随时找到。确保你也这样做,不过你可以随意命名。
使用上面提供的链接下载资源,解压文件并将其拖到“文件系统”面板中。我们还可以删除项目中默认的 icon.svg 和 README.MD 文件。
右键单击面板,然后创建三个新文件夹:Scenes、GUI 和 Scripts。Scenes 文件夹将包含我们所有的 .tscn 文件(玩家场景、NPC 场景、地图场景等);Scripts 文件夹将包含我们所有的 .gd 文件;GUI 文件夹将包含我们所有的 UI 元素场景(Score、Health 和 Time UI)。
在 Scenes 文件夹中,我们来创建第一个场景,也就是主场景。主场景将作为游戏元素的核心容器。这通常是游戏启动时加载的第一个关卡。在这个主场景中,我们将添加游戏所需的地图、角色和物品。主场景也是游戏启动时自动运行的场景——稍后我们将在创建主菜单场景时对其进行更改。
图 4:城堡攀登者场景流程概览
要添加场景,您可以右键单击“文件系统”面板,然后像我们添加文件夹时一样添加一个新场景。您也可以在“场景停靠”菜单中选择“2D 场景”选项,这将自动创建一个以 Node2D 节点为根的新场景。
我更喜欢通过工作区面板中的加号图标添加新场景,因为这是创建新场景的最快方法。您现在不必这样做,但为了以后参考,我认为了解如何快速添加新场景对您来说会很有帮助。
单击场景停靠栏中的 2D 场景选项,您将看到它会自动添加Node2D作为根节点。
Node2D 节点是 2D 游戏的基础节点。我们通常在主场景或任何包含多个节点和不同类型场景的场景中使用此节点。我们可以将任何 2D 类别的节点添加到此 Node2D 节点——因为它能够实例化并引用任何 2D 子节点。
现在您将看到一个 Node2D 节点已添加为我们的根节点,但我们的场景尚未保存。请将其保存在上面的“场景”菜单中,或使用快捷键 CTRL + S。将场景保存为“场景”文件夹中的“Main”场景。
双击 Node2D 根节点进行重命名。让我们将其重命名为与场景名称匹配的名称。将根节点重命名为与场景名称相同,有助于我们稍后在其他场景中实例化这些场景时识别它们。因此,我们将知道“Player”节点来自“Player”场景,依此类推。
现在我们可以向根节点添加子节点了。您可以再次通过加号图标进行操作。记住,我们制作的是 2D 游戏,所以以“3D”结尾的节点不适用于我们的节点!现在我们先添加一个Sprite2D节点,因为我们需要更改纹理过滤。Sprite2D 节点包含一个精灵,精灵是一种计算机图形,可以在屏幕上移动,也可以作为单个实体进行操作。请注意,您添加的任何节点都会添加到节点菜单的“最近”面板中,因此您下次可以轻松地从那里选择它,而无需搜索!
在 2D 工作区中(因为我们要制作 2D 游戏),选择你的 Sprite2D 节点,然后按下键盘上的 F 键以将焦点移到所选节点上。选中节点后,在检查器面板中,你将看到纹理选项。这将包含我们精灵的图像。
如果您进入资产文件夹,您可以将任何您想要的图像拖到该纹理属性中。
如果你放大精灵,你可能会注意到它有点模糊。这是因为纹理没有读取到最近的像素。让我们修复纹理过滤,让它更平滑一些。
在“项目”>“项目设置”下的项目设置选项中,将“纹理渲染”从“线性”更改为“最近”。这将扩大纹理渲染的规模,使图像资源始终保持高质量。现在你会发现它看起来很漂亮,很清晰。
我们还需要将“拉伸”模式改为“视口”,并将“尺寸”模式改为“最大化”。“拉伸”模式设置定义了如何拉伸基本尺寸以适应窗口或屏幕的分辨率。“视口”模式会拉伸游戏以适应屏幕。
这部分最后一步是设置主场景。在“项目设置”的“应用程序”>“运行”下,您可以将主场景设置为我们新创建的场景。这样,每当我们运行游戏时,它都会运行这个场景。稍后,我们将把它改为菜单场景,因为我们希望玩家首先看到的是开始菜单,他们可以在其中启动/加载关卡,而不是直接进入游戏的第一个关卡。
恭喜,您已经学会了如何在 Godot 编辑器中导航,并为您的项目添加了第一个节点和场景。建议您为您的游戏创建自己的GitHub 仓库或备份文件夹,以便定期备份项目。
这就是我们项目概述和设置部分的全部内容!在下一部分中,我们将设置游戏角色,也就是玩家,并添加在游戏中移动的功能。这意味着更多的节点,你将第一次接触到脚本!记得保存你的游戏项目,下一部分见。
教程系列的下一部分
本系列教程共有 24 章。我将在接下来的几周内分阶段每日发布所有章节。您可以在我的GitBook上找到本系列所有 24 章教程链接的更新列表。如果您尚未看到某个章节的链接,则表示该章节尚未发布。此外,如果本系列未来有任何更新,您可以通过我的 GitBook 获取最新信息!
支持该系列并获得早期访问权!
如果您喜欢这个系列并愿意支持我,您可以向我的 KoFi 商店捐赠任意金额,或者您可以购买包含整个系列的小册子的离线 PDF !
这本手册将永久提供“通过制作 2D 平台游戏学习 Godot 4 ”PDF 手册的完整离线版本。这份 451 页的文档按顺序包含了本系列的所有教程。此外,如果您遇到困难或需要建议,还可以获得我的专属帮助。这意味着您无需等待我在 Dev.to 或 Medium 上发布本系列教程的下一部分。您可以随时随地按照自己的节奏继续阅读本教程!
本书将不断更新,以修复新发现的错误,或修复与 Godot 4 较新版本的兼容性问题。
文章来源:https://dev.to/christinec_dev/learn-godot-4-by-making-a-2d-platformer-part-1-project-editor-overview-1ap4