分类 Godot自学 下的文章

让我们通过制作 RPG 来学习 Godot 4 — 第 21 部分:简单的店主 在完成我们的RPG系列之前,我们不能不添加一个商店老板到我们的游戏中。我们希望玩家能够从商店老板那里购买弹药、生命值和耐力值。这意味着玩家不必总是冒着生命危险去寻找弹药和消耗品!不再多说,让我们在游戏中添加一个简单的商店老板吧!你将在这部分学到的内容:如何在Sprite2D节点中裁剪动画帧。在创建商店老板场景之前,我们需要先给玩家一些金币——并更新我们的NPC和敌人脚本,以便在玩家完成任务或杀死敌人时给予他们金币。在你的玩家脚本中,定义一个名为“coins”的新变量,并给它一个初始值。我将...    

让我们通过制作 RPG 来学习 Godot 4 — 第 22 部分:音乐和音效 在这一部分,我们将通过为游戏添加一些音乐和音效(SFX)来为游戏增添最后的生命力。我们希望在主菜单、暂停、死亡界面以及主场景中都有背景音乐。同时,我们还会为玩家和敌人添加射击和受伤的音效,以及对话音乐和拾取音效。你将学习到的内容:如何使用 AudioStreamPlayer 节点。如何使用 AudioStreamPlayer2D 节点。如何在代码中播放、设置和停止音频流。如何在导入面板中循环播放音频文件。在 Godot 中,你有三种主要的音频播放方式:AudioStreamPlayer:这...    

让我们通过制作 RPG 来学习 Godot 4 — 第 20 部分:保存和加载系统 在这一部分,我们将为玩家添加保存和加载游戏的功能。当我们保存游戏时,需要存储所有不同脚本中的必要变量,以保存这些变量的当前状态。你将学到的内容:如何创建持久的保存和加载系统如何解析JSON文件如何使用FileAccess对象读写文件如何保存/加载游戏变量我们将这些变量保存在一个字典中,字典将存储我们的值作为键。字典的语法与JSON类似,这对我们很有帮助,因为我们将把保存文件保存为JSON格式。JSON是一种开放标准的文件格式和数据交换格式,它使用人类可读的文本来存储和传输由属性-值对和数组...    

让我们通过制作 RPG 来学习 Godot 4 — 第 19 部分:暂停菜单和主菜单 暂停菜单和主菜单是每款游戏的默认功能。我们不希望玩家每次去拿零食时都会死亡,也不希望游戏直接生成到游戏中!在这一部分之后,我们的玩家需要通过主菜单来退出和启动游戏,并且能够暂停游戏。暂停屏幕将在下一部分升级,以允许玩家保存游戏。主屏幕也将在下一部分升级,以允许玩家加载已保存的游戏。你将学到什么:如何暂停和恢复游戏状态。如何退出游戏项目。暂停菜单 GUI 设置在你的玩家场景中,向 UI 层添加一个新的 CanvasLayer 节点,并将其命名为 PauseScreen。在该节点下,添加一个 ...    

让我们通过制作 RPG 来学习 Godot 4 — 第 18 部分:场景转换和昼夜循环 在经历了漫长的一天,射击坏蛋并完成任务后,我们的玩家理应回家好好睡一觉。然而,在他们能够这样做之前,我们需要为他们提供一个带床的房子。在这一部分中,我们将实现这一点,同时为我们的玩家添加在场景之间切换的能力。我们还将添加一个“酒馆”,玩家可以进出,以及一个昼夜循环系统,根据时间改变游戏的颜色!你将在这部分学到:如何通过 Area2D 节点触发节点的可见性。如何在代码中切换游戏场景。如何使用 CanvasModulate 节点。如何访问系统时间。这一部分将向你展示两种让玩家探索更多世界的方式...    

让我们通过制作 RPG 来学习 Godot 4 — 第 17 部分:基本 NPC 和任务 现在我们已经设置了大部分游戏,我们可以继续创建一个带有任务的 NPC。请注意,这个任务系统不会是一个带有任务链的动态系统。不,不幸的是,这个任务系统只包含一个带有对话和状态树的简单收集任务。我把它保留为这个简单的系统,因为对话、任务甚至库存系统都非常复杂,因此我将制作一个单独的教程系列,单独关注这些高级概念!您将在本部分中学习到的内容:· 如何处理游戏状态。· 如何添加对话树。· 进一步练习弹出窗口和动画。· 如何使用 InputEventKey 对象。· 如何向节点添加组。· 如何使用 ...    

让我们通过制作 RPG 来学习 Godot 4 — 第 16 部分:等级和 XP 现在我们有了基本的敌人和玩家,我们需要给自己一个杀死敌人的动机。我们可以通过升级系统来实现这一点,该系统在获得一定数量的 XP 后提高玩家的等级。如果玩家升级,他们会得到奖励,包括拾取物品和属性(健康、耐力)补充。我们还会在升级时增加他们的最大健康和最大耐力值。您将在本部分中学习到的内容:· 如何使用 Popup 节点。· 如何暂停场景树。· 如何允许/禁止输入处理。· 如何改变节点的处理模式。· 如何(可选)更改鼠标光标的图像和可见性。升级概述升级弹出窗口准备就绪后,打开你的游戏项目,在...    

让我们通过制作 RPG 来学习 Godot 4 — 第 15 部分:玩家死亡和游戏结束 现在我们的玩家可以被敌人伤害,我们可以继续实现该功能,以便他们可以死亡,如果他们已经死亡,游戏就结束了,并显示游戏结束屏幕。稍后,我们将在此游戏结束系统的基础上进行构建,以便我们重定向到主菜单屏幕。您将在本部分中学习到的内容:· 使用 AnimationPlayer 节点进一步练习。· 进一步练习使用 CanvasLayer 节点。在 Player 场景中,向 UI 节点添加新的 Label 和 ColorRect。将 ColorRect 重命名为“GameOver”。它应该如下所示:将 ...    

让我们通过制作 RPG 来学习 Godot 4 — 第 14 部分:敌人射击和造成伤害 如果玩家是游戏中唯一能够造成伤害的实体,那就不公平了。这会让他们成为毫无威胁的强大恶霸。这就是为什么在这一部分我们要赋予敌人反击的能力,他们将能够对我们的玩家造成真正的伤害!这个过程与我们赋予玩家射击和造成伤害的能力时所做的类似。这次只是反过来。这部分可能需要一段时间,所以请放松,让我们的敌人值得成为我们的敌人!您将在本部分中学习到的内容:· 如何使用 AnimationPlayer 节点。· 如何使用 RayCast2D 节点。· 如何使用调制值。· 如何复制/粘贴节点以及复制对象。敌人...    

让我们通过制作 RPG 来学习 Godot 4 — 第 13 部分:敌人死亡时掉落战利品 我们终于可以射击并杀死敌人了,但我们可以做得更好。我希望我们升级敌人的死亡功能,以便我们的敌人掉落我们可以捡起的战利品。这种战利品掉落的几率为 90%,并且战利品将从我们的 Pickups 枚举中随机抽取。这意味着我们的敌人可能会掉落弹药、健康饮料或耐力饮料。您将在本部分中学习到的内容:· 如何随机化百分比和枚举返回值。在 damage() 函数的死亡条件中,我们需要使用随机方法来随机化战利品变化百分比。如果值小于 0.9(90%),我们将随机化一个拾取物。这个拾取物也将根据我们拥有的枚举...