# Godot-MissMonsters **Repository Path**: lx-jian/Godot-MissMonsters ## Basic Information - **Project Name**: Godot-MissMonsters - **Description**: 跟着官方文档,用Godot写一些东西,记录学习的过程。 MY2D是官方文档里面的示例游戏。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-17 - **Last Updated**: 2025-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: Godot ## README # 学习笔记 ## 关键概念: ### 节点 场景由一个或多个节点组成。节点是游戏中最小的构建块,你可以将其排列成树 ### 场景树 游戏的所有场景都汇集在场景树中,字面意思是场景的树。由于场景是节点树,因此场景树也是节点树。但是,从场景的角度来考虑你的游戏更容易,因为它们可以代表角色、武器、门或你的用户界面。 ### 场景 Godot 的场景很灵活,既能够充当预制件(Prefab),又能够用作其他游戏引擎中的场景。 ### 信号 节点在发生某些事件时发出信号。此功能无需在代码中硬连接节点就能让它们相互通信。它为你提供了构建场景的灵活性。 例如按下按钮。其他节点可以连接到该信号,并在事件发生时调用函数。 信号是 Godot 内置的委派机制,允许一个游戏对象对另一个游戏对象的变化做出反应,而无需相互引用。使用信号可以限制耦合,并保持代码的灵活性。 (除了用编辑器连接信号,还可以用代码连接) #### 用代码连接信号 要使用代码来连接信号,你需要调用所需监听节点信号的 connect() 方法。 `参考文件first` 1. 首先,为了获取相对于当前节点的引用,我们使用方法 Node.get_node() 2. 然后,将信号和节点链接,定义触发的函数 #### 自定义信号 1. `signal health_depleted`定义好之后,编辑器 节点那边应该多出来一个自定义的信号 2. 要通过代码发出信号,请调用信号的 emit() 方法。 3. 信号还可以选择声明一个或多个参数。在括号之间指定参数的名称: 4. 要在发出信号的同时传值,请将它们添加为 emit() 函数的额外参数: ## 运行 F5运行主场景 F6运行当前场景。 主场景一旦定义再次修改只能通过修改中的project.godot中的run/main_scene属性。 run/main_scene属性中的内容对应不同的tscn的uid,修改即可。 ## 具体代码注解 ### first文件 “ui_left”和“ui_right”是可以在godot中自己定义的: `打开“项目 -> 项目设置”并点击“输入映射”选项卡,就可以查看并编辑项目中的输入动作。` _on_button_pressed函数是按钮的回调函数,点击其左边的绿色按钮显示其与谁链接了起来 # 项目构成: ## MY2D: 项目启动后自动开启这个目录下的Main场景,是西安了由玩家控制的角色、在游戏区域内随机产生的敌人、计算分数、实现游戏结束和重玩、用户界面、声音,以及更多内容。 ![alt text](Snipaste_2025-07-08_08-47-58.png) ## art和font文件夹 存放一些资源 ,来自官方文档的教程,如下: Used by the "Your first 2D game" tutorial: https://docs.godotengine.org/en/latest/getting_started/first_2d_game/index.html # 其他 ## $符号 $ 是 get_node() 的简写。因此在上面的代码中,$AnimatedSprite2D.play() 与 get_node("AnimatedSprite2D").play() 相同。 在 GDScript 中,$ 返回从当前节点开始的相对路径上的节点,如果找不到该节点,则返回 null。 ## delta 参数 _process() 函数的 delta 参数是 帧长度 ——完成上一帧所花费的时间。 使用这个值的话,可以保证你的移动不会被帧率的变化所影响。 ## 启用音频循环 自动导入音频时 Loop 设置是禁用的。如果希望音乐无缝循环,请单击流文件的下拉箭头,选择 唯一化,然后再单击流文件并选中 Loop 框。 ## 关于节点的顺序 如使用 ColorRect 节点。将其设为 Main 下的第一个节点,这样这个节点就会绘制在其他节点之后。越靠上面图层顺序越靠后(大概是这个意思) ### 注 ColorRect 节点仅是一个颜色背景,如果你有背景图片,你也可以通过使用 TextureRect 节点来添加它。