分类 Godot自学 下的文章

让我们通过制作 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%),我们将随机化一个拾取物。这个拾取物也将根据我们拥有的枚举...    

让我们通过制作 RPG 来学习 Godot 4 — 第 12 部分:玩家射击和造成伤害 如果不能射击敌人,敌人还有什么用呢?在这一部分中,我们将创建子弹,让玩家可以朝他们面对的方向射击。然后,我们将添加一个动画,显示如果我们的子弹击中敌人,敌人会受到伤害。如果子弹击中敌人的程度足以使其生命值耗尽,他们也会死亡。稍后,我们将提高玩家的 XP,并在敌人死亡时为其添加战利品。但现在,让我们系好安全带,因为这部分会很长!您将在本部分中学习到的内容:· 如何使用 AnimationPlayer 节点。· 如何使用 RayCast2D 节点。· 如何使用调制值。· 如何使用 Time 类...    

让我们通过制作 RPG 来学习 Godot 4 — 第 11 部分:生成敌人 AI 想象一下,手动将 50 多个敌人添加到我们的场景中需要做多少工作。这不仅看起来很混乱,而且还意味着我们的场景中只有 50 个敌人,如果我们杀死他们所有人,他们就会消失,直到我们重新加载游戏。为了解决这个小难题,我们可以创建一个敌人生成器,它将在整个地图的随机位置以恒定值生成我们的敌人,这意味着我们的敌人永远不会多于或少于我们定义的敌人。每次我们杀死一个敌人并将其移除时,生成器都会生成一个新的敌人,依此类推。我们还将使我们的生成器足够灵活,以便我们可以在 Inspector 面板中更改生成区...    

让我们通过制作 RPG 来学习 Godot 4 — 第 10 部分:动画 AI 运动 如果敌人只是以静态图像的形式漂浮在我们的地图上,那它有什么用呢?这不行,所以让我们开始着手实现动画,让我们的敌人活过来。我还给你准备了一个惊喜:我们已经编写了大部分敌人的动画代码。嗯,不是真的,我的意思是它仍然在 Player 代码中,但这意味着我们可以继续复制和粘贴一些代码,这极大地加快了我们的开发时间。您将在本部分中学习到的内容:· 如何向不可控节点添加动画。· 进一步练习向量。在您的 Player 脚本中,我们想要将两个完整的函数复制到我们的 Enemy 脚本中。您应该复制的第一个函...