我的自习室—让生活从这里沉淀 - 2024年12月
type: channel
link: http://www.agoodlife.cn/index.php/2024/12/
description: 这里您可以静下心来学习，有自己的爱好，我喜欢编程，例如Godot游戏开发，HTML、CSS和Javascript前台开发，c#，sqlserver后台数据开发，还喜欢记录网海发现的各类好软件。
items: 让我们通过制作 RPG 来学习 Godot 4 — 第 5 部分：设置游戏 GUI #1
items: 让我们通过制作 RPG 来学习 Godot 4 — 第 4 部分：游戏图块地图和相机设置
items: 让我们通过制作 RPG 来学习 Godot 4 — 第 3 部分：玩家动画
items: 什么是SQL
items: 你知道网站的PV、UV、IP分别代表什么吗？
items: 推荐一款好用的PDF操作软件PDF24，功能强大优秀且完全免费
items: 让我们通过制作 RPG 来学习 Godot 4 — 第 2 部分：玩家设置和移动
items: 让我们通过制作 RPG 来学习 Godot 4 — 第 1 部分：项目概述和设置

让我们通过制作 RPG 来学习 Godot 4 — 第 5 部分：设置游戏 GUI #1
type: item
date: 2024-12-28T08:40:00+00:00
description: 在开始设置敌人和任务等有趣的部分之前，我们要完成游戏GUI的创建。GUI可以让我们直观地显示玩家统计数据的变化，例如他们的弹药和拾取量、健康和耐力值以及当前经验和等级。图 10：GUI 布局计划。我将GUI创建分为三个部分：健康和耐力；拾取物；以及经验和升级。您将在本部分中学习到的内容：· 如何向场景添加 UI 元素。· 如何复制节点。· 如何通过自定义信号更新 UI 元素。· 如何改变节点的锚定。· 如何创建、初始化和连接自定义信号。在您的 Player Scene 中，添加一个新的CanvasLayer节点。此节点是屏幕上绘制图形的容器，例如进度条或标签。将UI元素添加到主场景，然后通过信号将这些元素与实例化的Player脚本连接起来以更新它们的值。将其重命名为UI。我们希望 UI 元素包含在屏幕上的蓝色边框内。我隐藏了现有节点，以便我们现在可以只关注 UI，所以如果您发现我不再有地图或玩家，请不要惊慌！健康与耐力棒让我们将ColorRect节点作为子节点添加到 UI 节点。这将绘制一个我们可以用颜色填充的矩形。此节点将作为我们健康值的进度条。向新添加的节点添加另一个 ColorRect 节点。将第一个 ColorRect 重命名为 HealthBar，将第二个 ColorRect 重命名为 Value。外部矩形（HealthBar）将用作进度条的框或边框，内部矩形（Value）将是显示进度值的实际颜色。现在，在 Inspector 面板的 Layout > Transform 下，将 HealthBar 节点大小更改为 x：100 和 y：10。对 Value 节点执行相同操作，但将其 x 更改为：98 和 y 更改为：8。我们还希望将 Value 矩形置于 HealthBar 矩形的中心。为此，请将其锚点预设更改为中心。将 HealthBar 的颜色更改为 #3a39356a，将 Value 的颜色更改为 #a4de79。在我的游戏中，HealthBar 为绿色，但您可以随意更改颜色。让我们将生命值条锚定在屏幕的左下方。在 Inspector 面板的 Layout 下，将锚点预设从中心更改为左下方，并将其位置值更改为 x: 5, y: 155。复制整个 HealthBar 节点（及其子节点值）并将其重命名为 StaminaBar。将 StaminaBar 中的 Value 节点的颜色更改为 #377c9e。这会使其变成蓝色，但再次强调，这是您的游戏，因此您可以将其设置为任何您喜欢的颜色。我们还将耐力条锚定在屏幕的左下角。在 Inspector 面板的 Layout 下，将锚点预设从中心更改为左下角，并将其位置值更改为 x: 5, y: 165。现在我们已经设置了健康和耐力进度条！我们现在可以继续在代码中实现这些元素的功能。在我们的 Player 脚本中，我们需要添加变量来捕获我们的健康值、最大健康值和健康恢复值，以及我们的耐力值。在 Player.gd 脚本的顶部，在is_attacking代码下方，让我们添加这些变量。### Player.gd # 旧代码 # UI 变量 var health = 100 var max_health = 100 var regen_health = 1 var stamina = 100 var max_stamina = 100 var regen_stamina = 5创建变量后，我们需要为健康和体力创建自定义信号，以便游戏中的其他对象可以监听变化事件并做出反应，而无需直接相互引用。换句话说，这些信号将通知我们的游戏我们的健康或体力值发生了变化，然后触发其他事件。如果我们的健康和耐力变量发生变化，我们希望向其发出信号，以便这些变化在我们的进度条中直观显示，并且我们的健康值得到更新。我们之前使用过信号，当时我们将内置的on_animation_finished()信号连接到我们的播放器脚本，但这次，我们将创建自己的自定义信号。为什么要使用自定义信号？虽然内置信号涵盖了许多常见用例（例如按钮点击或鼠标事件），但它们可能无法处理游戏或应用程序特有的所有特定交互或事件。自定义信号提供了一种定义特定于游戏逻辑的事件集的方法，使您的代码库更有条理、可重复使用且更易于维护。现在，在创建自定义信号之前，让我们尝试了解何时需要发出这些信号并通知游戏我们的健康和体力值已发生变化。我们希望在按下冲刺输入时、以及在受到子弹伤害或稍后喝下健康药水时发出信号。图 12：自定义信号概览我们将把自定义信号添加到代码顶部，因为我们稍后会添加更多信号。这将使我们的所有信号保持整洁有序。要定义自定义信号，我们使用关键字signal后跟信号名称。我们的信号将更新我们的健康和耐力值，因此我们将它们称为 health_u…

让我们通过制作 RPG 来学习 Godot 4 — 第 4 部分：游戏图块地图和相机设置
type: item
date: 2024-12-25T15:40:00+00:00
description: 欢迎回到我们的Dusty Trails教程系列！如果您错过了上一部分，您可以在本教程末尾找到它的链接。我们现在有了一个正常运行的玩家，好吧，我们还有很多东西可以添加到我们的小人物身上，使他们成为真正的游戏英雄！但现在，我们的玩家必须等待，因为在这一部分中，我们将添加带有碰撞的游戏TileMap，并添加一个Camera2D到我们的游戏中，以便我们可以跟随玩家。我们没有在本教程的播放器设置部分添加相机节点，因为相机节点在没有某种背景（即我们的图块地图）的情况下无法工作。您将在本部分中学到什么：· 如何使用 TileMap 节点的精灵表。· 如何使用 TileMap 和 TileSheet 面板。· 如何使用 TileMap 工具将图块绘制到地图上。· 如何创建图块地图图层以及物理和地形图层。· 如何向您的播放器添加摄像头。首先，什么是瓦片地图或瓦片集？图块地图是用称为图块的小型规则形状图像构建游戏世界或关卡地图的基础。这些图块存储在我们称为图集、图块集或精灵表的东西中，我们之前在添加动画时已经见过它们。换句话说，图块集是图块地图的实际图形。TileMap 和 TileSet 有什么区别？TileMap 是一个网格，您可以在其中放置 Tileset 中的图块以实际构建关卡。图块集是可用于构建关卡的图块集合。图 1：TileSet（左）和 TileMap（右）在我们的主场景中，我们可以添加一个 TileMap 类型的新节点。单击并拖动该节点，使其位于我们的玩家场景后面，否则，玩家将被我们的地图隐藏！我们将此节点重命名为 Map，然后在 Inspector 面板中单击 TileSet 旁边的 以创建新的图块集。您将看到下面弹出两个新选项：TileMap和TileSet。要创建 TileMap（这是我们将在屏幕上绘制的地图），我们首先需要为其分配一个 TileSet（这是我们将从中绘制的图像）。为此，请单击 TileSet 选项，然后在文件系统面板中打开资源文件夹。您会看到我给了您三个图块集：Interior、Water 和 Atlas。我们将使用这些图块来创建我们的世界。您可以将这些图块表拖到 TileSet 面板中的“图块”选项中。会弹出一个窗口询问您是否希望引擎自动创建图块。选择“是”，因为这会将我们的图像分成漂亮的方块以形成网格。您现在可以更改图块表名称、ID 和网格分隔值。更改您的姓名和 ID，如下所示：现在，如果我们返回到 TileMap 面板，我们可以看到我们的图块已添加。现在，您可以单击图块并开始在屏幕上绘制图像。以下是 TileMaps 面板中提供的工具的简要概述：一部分可能有点令人困惑，所以我将尝试将其分解成几个部分，以便您更好地理解这些概念。如果事情对您来说有点复杂，请下载我创建的地图场景，并将地图节点从场景拖入主场景。地图创建1. 地形图层介绍（自动平铺）我们可以使用提供的绘画工具绘制或创建地图，但我们的环境看起来会很单调，尤其是对于我们的地形而言。为了让事情变得更容易，我们可以使用一种称为autotiles的东西。地形（也称为自动图块）可创建有机地形形状，并自动绘制我们指定区域的角落和边缘。这消除了手动放置草地或水体边缘和侧面的繁琐工作，同时让我们尝试自己创建有趣的地形。要创建自动图块，只需转到“检查器”面板，单击“TileSet”资源（带有图像的资源），然后在“地形集”下添加一个地形集元素。请记住还要向地形集元素添加一个元素。您可以为不同的地形元素创建不同的地形集。例如，您可以将草地自动图块放在一组中，将泥土自动图块放在另一组中，依此类推。让我们为草地、沙子和水创建地形元素。您将从下图中看到，我有一个 Sand_Dessert 和一个 Sand_Forest。这只是为了向您展示您可以在一个地形元素集中拥有多个沙子。在我的例子中，草地、沙子和水都在不同的集合中，但沙子元素在同一个集合中。2. TileMap 图层趁此机会，我们还要创建图层，以便我们可以在不同的图层上绘制这些元素，这样它们就可以重叠。如果我们在同一层上绘制，这些图块就会相互擦除。要添加新图层，只需进入“检查器”面板，然后在“图层”属性下方添加一个新图层元素即可。让我们为每个地形集添加一个：水、草和沙。3. 地形图层创建（自动平铺）现在我们可以分别在图层上绘画。但首先，让我们创建这些自动图块。在您的 Tileset 面板顶部，您将看到三个选项：设置、选择和绘画。在设置中，我们已经看到，我们可以在这里更改图块集的名称和 ID。在选择面板中，从 TileMap 属性中添加图层（例如地形或物理图层）后，我们可以更改图块的属性，即通过选择然后更改图块组来添加碰撞或自动平铺。在绘制面板中，我们可以执行与选择面板中相同的操作，但这次我们可以将这些属性绘制到图块上…

让我们通过制作 RPG 来学习 Godot 4 — 第 3 部分：玩家动画
type: item
date: 2024-12-21T12:19:00+00:00
description: 我们的玩家已经设置好了，当我们运行游戏时，它会在地图上移动。但是有一个问题，那就是它只是静态移动。它没有配置动画！在本节中，我们将重点介绍如何为玩家添加动画，以便它可以四处走动并开始活跃起来。您将在本部分中学习到的内容：· 如何使用精灵表进行动画制作。· 如何使用 AnimatedSprite2D 节点添加动画。· 如何将动画与输入动作连接起来。· 如何添加自定义输入操作。· 如何使用 input() 函数和 Input 单例。· 如何使用内置信号。对于我们的玩家，我们需要动画来上下左右移动。对于每个方向，我们将设置空闲、行走、攻击、伤害和死亡的动画。由于我们要处理的动画太多，我将带您了解第一个方向，然后给您一个表格来完成其余部分。在 Player 场景中，选中 AnimatedSprite2D，我们可以看到已经添加了向下行走的动画。让我们将这个默认动画重命名为walk_down。单击文件图标添加新动画并将其命名为idle_down。与之前一样，让我们​​选择“从 Sprite Sheet 添加帧”选项，然后导航到播放器的正面动画。将水平值更改为 14，将垂直值更改为 5，然后选择我们的空闲动画的第一行帧。将其 FPS 值更改为 6。添加新动画，并将其命名为attack_down。对于这个，您需要选择第三行动画帧。将其 FPS 值更改为 6 并关闭循环，因为我们只希望此动画触发一次而不是连续触发。接下来，让我们添加一个新动画，并将其命名为damage。为此动画选择第 4 行中的单帧。将其 FPS 值更改为 1 并关闭循环。最后，创建一个新的动画并将其命名为“死亡”。将最后一行帧添加到此动画中。将其 FPS 值更改为 14 并关闭循环。现在我们已经创建了向下动画以及死亡和伤害动画。您认为自己可以自己添加其余部分吗？如果不行，请联系我，我会修改本节并提供有关这些内容的说明。对于更大胆的人，这里有一个你需要添加的动画表：最后，你的完整动画列表应如下所示：现在我们已经添加了所有玩家的动画，我们需要更新脚本，以便将这些动画链接到我们的输入操作。我们希望在按 W 或 UP 时播放“向上”动画，在按 S 或 DOWN 时播放“向下”动画，在按 A 和 LEFT 或 D 和 RIGHT 时播放“向左”和“向右”动画。让我们通过单击 Player 节点旁边的滚动图标来打开脚本。由于我们已经在_physics_process()函数中添加了移动功能，因此我们可以继续创建一个自定义函数，该函数将根据玩家的方向播放动画。此函数需要将 Vector2 作为参数，它是表示玩家在特定空间和时间中的位置或方向的浮点坐标（请参阅前面部分中的矢量图像作为对此的复习）。在现有代码下，让我们创建player _ animations()函数。 ### Player.gd extends CharacterBody2D # Player movement speed @export var speed = 50 func _physics_process(delta): # older code # Animations func player_animations(direction : Vector2): pass为了确定玩家所面对的方向，我们需要创建两个新变量。第一个变量是我们将与零向量进行比较的变量。如果方向不等于 Vector(0,0)，则表示玩家正在移动，这意味着玩家的方向。第二个变量将存储此方向的值，以便我们可以播放其动画。让我们在脚本之上、速度变量之下创建这些新变量。### Player.gd extends CharacterBody2D # Player movement speed @export var speed = 50 func _physics_process(delta): # older code # Animations func player_animations(direction : Vector2): pass为了使我们的代码更有条理，我们将使用@onready注释来创建对 AnimatedSprite2D 节点的引用实例。这样，我们可以重复使用变量名，而不必每次想要更改动画时都说 $AnimatedSprite2D.play()。请注意，在播放 side_ 动画时，我们还会水平翻转精灵。这样，我们就可以对左右方向重复使用相同的动画。### Player.gd extends CharacterBody2D # Node references @onready var animation_sprite = $AnimatedSprite2D现在，在我们新创建的函数中，我们需要将 new_direction 变量与零进行比较…

什么是SQL
type: item
date: 2024-12-20T02:00:00+00:00
description: SQL（Structured Query Language，结构化查询语言）是一种用于管理关系数据库的编程语言。它用于处理数据、更新数据库中的数据、从数据库中检索数据以及在数据库中执行各种其他操作。以下是SQL的一些主要用途：数据查询：SQL最常用的功能是从数据库中检索数据。使用SELECT语句，可以指定要检索的数据。数据操作：可以使用SQL来插入（INSERT）、更新（UPDATE）和删除（DELETE）数据库中的数据。数据定义：SQL可以用来创建或删除数据库中的表格，以及其他对象，比如视图和索引。这通常使用CREATE、ALTER和DROP语句来完成。数据控制：SQL提供了一系列命令来帮助控制不同数据的访问权限，例如GRANT和REVOKE语句。事务控制：SQL支持事务处理，允许执行一系列操作，要么全部成功，要么全部失败。这通常涉及COMMIT和ROLLBACK语句。SQL遵循一套标准，这些标准由国际标准化组织（ISO）和国际电工委员会（IEC）的联合技术委员会JTC 1/SC32制定。不过，不同的数据库管理系统（DBMS），如MySQL、PostgreSQL、SQLServer、Oracle等，可能会有特定的扩展和差异。下面是一个简单的SQL查询示例，用于从名为employees的表中检索特定字段的数据：SELECT name, age FROM employees WHERE age > 30; 这条语句的意思是：从employees表中选择名字（name）和年龄（age），但只选择那些年龄大于30的记录。

你知道网站的PV、UV、IP分别代表什么吗？
type: item
date: 2024-12-20T01:53:40+00:00
description: PV（Page View）：页面浏览量，指的是网站页面被查看的次数。每当用户访问或刷新一个页面时，都会被计为一次页面浏览。UV（Unique Visitor）：独立访客数，指的是在特定时间内访问网站的独立个体数量。通常通过IP地址和Cookie来区分不同的用户，一个独立的IP地址在一天内多次访问网站只被计算一次。IP（Internet Protocol）：互联网协议地址，指的是访问网站的独立IP地址数量。与UV类似，它用于统计访问网站的不同计算机数量，但并不区分同一台计算机上的不同用户。这三个指标都是分析网站流量和用户行为的重要参数，帮助网站运营者了解网站的受欢迎程度和用户互动情况。

推荐一款好用的PDF操作软件PDF24，功能强大优秀且完全免费
type: item
date: 2024-12-20T01:11:42+00:00
description: PDF24 - 优秀实用且完全免费的PDF工具箱软件。是一个提供多种PDF处理功能的平台，包括在线工具和可下载的软件。以下是PDF24的一些主要特点和服务：PDF24 Tools：这是一套免费且易于使用的在线PDF工具，可以进行PDF合并、分割、压缩、编辑、转换、加密、解密等多种操作。这些工具直接在浏览器中运行，不需要安装任何软件，支持所有操作系统和浏览器。PDF24 Creator：这是一个免费的、功能丰富的可下载PDF软件。它允许用户在没有网络连接的情况下创建、编辑、转换、压缩、识别和保护PDF文件。PDF24Creator提供了包括PDF打印机、PDF阅读器、PDF转换器、PDF压缩工具、PDF文本识别等功能。安全性：PDF24非常重视用户数据的安全。传输到PDF24服务器的文件会被完全加密，并在处理后短时间内从服务器上删除。对于更高级的安全性需求，PDF24 Creator可以将所有文件保存在用户的个人电脑上。多语言支持：PDF24支持多种语言，使其适用于全球用户。用户评价：PDF24 Creator在用户中的评价很高，最近三年的用户评分为4.89星（满分5星）。太多的使用功能了，自己研究吧，全部免费，总的来说，PDF24是一个强大且用户友好的PDF处理工具，适用于各种PDF相关的需求。官网: https://www.pdf24.org/zh/

让我们通过制作 RPG 来学习 Godot 4 — 第 2 部分：玩家设置和移动
type: item
date: 2024-12-18T15:23:00+00:00
description: 现在我们已经完成了项目设置，现在可以继续创建玩家场景了。我们的玩家场景将包含节点和脚本，使我们能够看到角色并控制他们，以便我们可以四处奔跑并与世界互动。您将在本部分中学到什么：如何创建、运行和实例化新场景。如何向节点添加输入动作、碰撞和动画。如何向场景添加脚本和代码。如何向节点添加运动。玩家设置在我们的主场景中，我们可以继续删除之前添加的 Sprite2D 节点。我们将为玩家创建一个全新的场景，然后在主场景中实例化它。实例化允许我们从模板复制对象，以便我们可以单独修改它们。换句话说，我们将把 Player 与主场景分开，这样我们就可以将它视为一个单独的对象。一分钟后您就会更清楚地看到它是如何工作的。在工作区中，单击 Main(*) 旁边的加号图标以创建新场景。在场景 Dock 中，添加一个新的根节点。我们需要这个根节点是一个CharacterBody2D节点，它是一个专门的2D物理身体节点，用于可以通过脚本移动的角色。我们将此节点用于需要物理处理进行运动的实体。双击CharacterBody2D节点将其重命名为“Player”。我们还可以继续将新场景保存为场景文件夹中的“Player”。您会注意到根节点旁边有一个警告图标。如果将鼠标悬停在其上，您将看到警告消息。它告诉我们，我们的角色没有形状，因此无法与其他角色发生碰撞或互动。为了解决这个问题，我们需要添加一个CollisionShape2D节点。该节点将允许我们的玩家与其他碰撞体发生碰撞，这将阻止、损坏或触发我们玩家中的事件。该节点还将返回一条警告消息，因为我们尚未在检查器面板中为其分配形状。让我们通过单击“形状”旁边的<空>框并选择一个形状来解决此问题。您为对象选择的形状类型取决于您希望它们完成的任务（从它们需要碰撞的位置）以及它们的身体形状。因此，圆形角色可能会发生圆形碰撞，等等。对于我们的精灵，我们选择 CapsuleShape2D 形状。您现在将看到我们有一个碰撞形状，因此我们可以与游戏中的其他对象碰撞，但我们甚至还没有身体！要查看我们的角色，我们需要将其分配给 Sprite。现在，我们可以通过两种方式实现这一点：通过Sprite2D节点和AnimatedSprite2D节点。如果我们想要一个静态对象，即不移动或没有动画的对象，Sprite2D 节点是完美的。然而，AnimatedSprite2D 对象则恰恰相反。当我们有一个需要精灵表动画的对象时，它是完美的。选择 Player 的根节点（确保选择它而不是 CollisionShape2D 节点，否则它会将我们的节点添加到其中作为其子节点），添加一个新的 AnimatedSprite2D 节点。如果您选择了错误的节点，请右键单击要替换的节点并说出更改类型。该节点将再次返回警告，这是因为它没有分配给它的精灵表，因此它无法返回动画帧。让我们通过进入 Inspector 面板并在 Sprite Frames 旁边的 下面选择 New SpriteFrames 来消除此警告。这个 SpriteFrames 资源允许我们导入图像文件（或包含所述文件的文件夹）来为精灵提供动画帧。要配置我们的 SpriteFrames 资源，请单击它，您将在下面的面板中看到一个新选项弹出。在此面板中我们可以添加新动画、删除动画、播放动画或编辑动画。可以删除或重命名默认动画。我们将在下一部分中添加所有玩家的动画，以便我们可以更详细地探索该节点。现在，我们只需单击“从 Sprite Sheet 添加帧”选项即可为默认动画分配一个 Sprite。将弹出一个窗口，以便我们可以选择要添加的 Sprite Sheet，因此请进入“Assets”>“Player”，然后选择“Front Sheet”。将会弹出另一个窗口，在这里我们需要裁剪单独的精灵来制作动画。默认的水平和垂直值为 4。在水平方向上，我们可以算出我们的玩家帧数最多为 14，因此将水平值更改为 14。在垂直方向上，我们可以算出我们的玩家帧数达到了 5，因此将垂直值更改为 5。现在我们可以（按顺序）选择我们想要的帧来创建一个动画。该表有五种可能的动画：闲置、行走、攻击、伤害和死亡。现在，我们只选择第二行来创建基本的行走动画。确保按顺序选择它，否则，您将不得不在 SpriteFrames 面板中重新排列它。我们的默认动画现在添加了 8 帧。如果您按播放，我们可以在工作区中看到动画播放。我们的玩家走得有点慢，所以让我们将 FPS 值从 5 提高到 10。保留循环值处于启用状态。运动输入添加步行动画后，我们现在可以添加输入和功能来移动它们。在我们开始编码之前，我们需要添加一个输入动作。这是物理控件，例如我们的键盘按键、操纵杆、按钮等，我们将它们映射到我们的功能以在游戏中移动我们的角色。要添加输入操作，我们…

让我们通过制作 RPG 来学习 Godot 4 — 第 1 部分：项目概述和设置
type: item
date: 2024-12-16T13:39:00+00:00
description: 本系列2D游戏自学开发，使用的是Godot4和GDScript开发，实现了如何从头到尾制作游戏，并最终向示作为Godot开发人员初学者需要了解的所有内容！我们将要创建的游戏是什么？该游戏是RPG（角色扮演游戏），玩家可以在整个地图上奔跑，射击和掠夺敌人，并完成任务。敌人会随机出现，如果靠近玩家，他们会四处游荡并追逐玩家。我们还将有NPC和店主，他们会为玩家提供任务并向玩家出售拾取物品。图 1：我们的游戏和实体的概览。什么是RPG？RPG（角色扮演游戏）是一种电子游戏类型，玩家在虚构的场景中扮演角色。玩家负责在叙事中扮演这些角色，无论是通过文字表演还是通过有关角色发展的结构化决策过程。RPG通常涉及故事叙述、世界构建和角色发展。本系列教程将涵盖以下方面：玩家动画、动作和统计数据完整的游戏UI拾取器和耗材敌人运动、动画和统计数据敌人随机游走和生成随机掉落战利品玩家和敌人的死亡、伤害和攻击经验和升级带有任务的基本可定制NPC场景转换（位置改变）游戏音乐和音效存档、暂停和加载系统带碰撞和摄像头的游戏地图商店项目导出请注意，本教程系列适用于初级GDScript和Godot开发人员。此外，本教程使用Godot版本4.1.1。如果您在使用较新版本时遇到错误，请不要惊慌，因为这可能会发生。我会尝试尽可能多地更新此项目以使用较新版本的Godot。我还会在各个章节的末尾将分段源代码链接到每个部分，以便您可以轻松地将项目的代码与您的代码进行比较。您将在本部分中学习到的内容：如何浏览Godot编辑器。如何更改项目设置以及使用节点属性。如何创建场景。如何向场景添加节点。编辑概述在我们开始编写代码之前，首先需要了解Godot编辑器的布局。如果您已经熟悉编辑器，则可以跳至本部分的项目设置部分。如果不熟悉，我建议您和我一起浏览编辑器。如果你还没有安装 Godot，请前往goddot网站下载可用的最新版本。下载完成后，解压文件，由于 Godot 不需要任何安装，你可以直接将其拖到你希望存储在计算机上的位置 — 或者直接从下载文件夹中打开它。启动可执行文件，您将看到项目管理器窗口。在这里您可以创建新项目、加载现有项目或扫描整个目录以导入多个项目。在顶部，您将看到一个名为“资产库项目”的菜单。在这里，您可以下载和查找社区成员为 Godot 制作的项目、模板或演示。它类似于其他在线市场，例如 Itch.io、Unreal Marketplace 或 Unity Asset Store。唯一的区别是这里的一切都是免费的。要创建项目，我们将点击“新项目”，然后会出现一个窗口，我们将在其中选择项目的保存位置并为其命名。我将我的项目命名为 Dusty Trails，但您可以随意命名。渲染模式有哪些？Forward+ 模式，适用于图形和渲染更密集的更高级的游戏项目。移动模式，一般用于手机游戏。兼容模式使用与 Godot 3 相同的渲染器，这意味着图形和渲染质量较低，因此更适合较旧或规格较低的设备。您可以在兼容模式或 Forward+ 模式下启动游戏 - 这取决于您的图形驱动程序是否支持 Godot 提供的 Vulkan 版本。您可以在此处阅读有关新渲染更新的更多信息。选择“创建和编辑”，您将神奇地进入项目窗口。顶部是工作区，这是我们完成任务的空间。默认情况下，3D 将始终处于活动状态。如果单击其他选项，则可以在不同的工作区之间切换。7_mYbocY2AnVpCLU1koe1aWw.jpg图 2：工作场所导航的鼠标输入工作区有何用途？2D 工作区用于编辑和查看 2D 游戏的 2D 场景。3D 工作区用于编辑和查看 3D 游戏的 3D 场景。脚本 工作区是我们编写、编辑和查看脚本的代码编辑器。Asset工作区是您可以在 项目中免费使用的资产库项目。窗口左侧的面板是场景停靠栏。它列出了您当前打开的场景的内容，您还可以在此停靠栏中向场景添加新节点。Godot 中的场景是节点的主要持有者或容器，而节点是游戏的主要构建块。不同的节点有不同的功能，例如，碰撞形状和动画精灵各有其用途，因此能够将它们组合在一个单一的场景中使我们能够为游戏创建具有更复杂功能的组件。场景还可以实例化其他场景，例如，在您的世界场景中拥有敌人场景。我建议您去看看 Godot 文档中的节点和场景。什么是场景和节点？ 场景是一个容器，用于容纳按层次结构排列的节点集合（例如我们的玩家或敌人）。节点是场景中构成场景的基本单元（例如场景中的Sprite 或相机）。图 3：节点和场景的示例。点击此处查看在线版本。另一个面板称为“导入”，您可以在此设置或编辑已添加到项目文件夹的资产（例如图像、字体和音频文件）的属性，然后可以使用保存的这些属性重新导入它们。在场景和导入面板下方，您将看到文件系统面板，您可以在此管理项目文件、文件夹和…