HOME / 第 2 部分 · 核心概念与 GDScript 语法 / 第 6 课
MODULE 2 · 核心概念与 GDScript 语法
第 6 课 · 节点(Node)系统详解
🎯 本课学习目标
- 彻底理解「节点」是什么
- 认识常用节点类型及其用途
- 掌握节点之间的父子关系
节点是 Godot 的积木。本课用大量实例讲透「节点」,这是整个引擎最重要的概念,没有之一。
📖 详细教学步骤
节点 = 游戏里的最小零件概念
在 Godot 里,所有东西都是节点(Node):
- 一张图片 →
Sprite2D节点 - 一个按钮 →
Button节点 - 一段声音 →
AudioStreamPlayer节点 - 一个计时器 →
Timer节点 - 一行文字 →
Label节点
节点只有一种能力——它本身只是一个「存在」,具体能干什么是通过它的类型决定的。比如 Sprite2D 能显示图片,Label 能显示文字。
节点有父子关系(树状结构)概念
节点可以嵌套:一个节点可以有子节点,也可以有父节点。
- 子节点会跟随父节点移动/旋转/缩放(位置是相对父节点的)
- 父节点删除,所有子节点一起删除
- 这种结构叫「节点树」(Node Tree)
💡 例:一个「玩家」节点下挂着「身体(精灵)」和「剑(精灵)」两个子节点,玩家移动,身体和剑自动跟着走。
最常用的节点类型一览汇总
| 节点类型 | 用途 |
|---|---|
| Node2D | 所有 2D 节点的基类,带位置/旋转/缩放 |
| Sprite2D | 显示一张 2D 图片(精灵) |
| CharacterBody2D | 角色物理体(玩家/敌人),可移动+碰撞 |
| RigidBody2D | 刚体,受重力/物理影响(箱子、弹珠) |
| Area2D | 区域触发器,检测「谁进入了这块区域」 |
| StaticBody2D | 静态物体(地面、墙壁) |
| Label | 显示文字 |
| Button | 可点击按钮 |
| Timer | 计时器,倒计时触发 |
| Camera2D | 2D 摄像机,跟随画面 |
在场景里添加节点(复习)实操
- 在场景面板右键根节点 → 添加子节点(Add Child Node)
- 搜索节点类型名(如 Label)并选择
- 给节点改名:选中节点按
F2,改成有意义的名字(如ScoreLabel)
命名规范建议:首字母大写 + 驼峰命名(如 PlayerSprite),方便管理。
⚠️
节点和对象有什么区别?
在 Godot 中,Node 是所有节点的基类,本质上也是一种对象。你可以简单理解:节点就是「带树状结构能力的对象」。
⚠️
子节点相对父节点移动,那我想让子节点放在屏幕绝对位置怎么办?
让它脱离父节点,直接放在根节点下面;或使用 CanvasLayer 等特殊节点。现阶段只需理解「相对位置」即可。
🧪 动手试一试
🏋️ 课后练习
新建一个场景,添加 Node2D 根节点,然后依次添加 Sprite2D、Label、Timer 三个子节点,并分别重命名为 Player、NameLabel、GameTimer。
右键根节点 → 添加子节点 → 搜索类型 → F2 重命名。添加完的树状结构类似:Node2D ├─Player ├─NameLabel └─GameTimer
💡
节点类型按 F1 可以打开内置文档(英文),遇到不懂的类型就查。
💡
记住:选节点 → 看场景面板树状图,谁缩进在谁下面,谁就是它的子节点。
🎓 本课小结
节点是 Godot 一切的基础,具有树状的父子关系:子节点跟随父节点,父节点删除子节点随之删除。常用节点有精灵、物理体、标签、按钮、计时器等。