节点(Node)

  • Godot 中最基本的构建块,一切皆节点。
  • 每个节点具有属性、方法,并能接收回调(如 _ready()、_process())。
  • 节点可以添加子节点,形成树状结构(场景树)。

2. 场景(Scene)

  • 由一组节点构成的、可保存为 .tscn 文件的组合。
  • 场景可被实例化(复制)到其他场景中,实现复用。
  • 一个游戏通常由多个场景组成(如玩家、敌人、UI、关卡)。

3. 场景树(Scene Tree)

  • 游戏运行时所有节点的层次结构。
  • 根节点通常是 Window(或 Main 场景),所有活动节点都挂在它下面。
  • 场景树管理节点的生命周期、处理顺序和分组。

4. 信号(Signals)

  • Godot 内置的事件系统,用于节点间解耦通信。
  • 节点可以发出信号(如“按钮被按下”),其他节点可以连接该信号并执行回调。
  • 通过 signal_name.connect(callable) 连接,避免直接引用节点。

5. 资源(Resources)

  • 数据容器,如纹理、音频、脚本、动画、字体、自定义数据等。
  • 资源可被多个节点共享,节省内存,并支持导入/导出。
  • 常见资源类型:Texture、AudioStream、Script、Animation、PackedScene。

6. 脚本(Scripts)

  • 附加到节点上的代码,定义节点行为。
  • Godot 支持 GDScript(官方语言)、C#、C++(通过 GDExtension)、VisualScript 等。
  • 脚本继承自节点类型,可覆盖虚函数(如 _process())并添加自定义逻辑。

7. 物理系统

  • 提供 2D/3D 物理模拟,包括刚体(RigidBody)、静态体(StaticBody)、角色体(CharacterBody)、碰撞形状等。
  • 通过 PhysicsServer 或节点(如 Area2D、RigidBody2D)使用。

8. 动画系统

  • 使用 AnimationPlayer 节点和 Animation 资源制作关键帧动画。
  • 可动画化节点属性(位置、旋转、颜色等),并支持混合、过渡、调用方法等。

9. 输入处理

  • 通过 Input 单例或节点中的 _input(event) 回调处理用户输入。
  • 支持“输入映射”(Input Map),可定义动作(如“跳跃”)并绑定按键/手柄。

10. 用户界面(UI)

  • 基于 Control 节点及其子类(如 Button、Label、Panel、Container)构建。
  • 使用锚点(anchors)和容器(containers)实现响应式布局。
  • UI 场景通常单独设计,并与游戏逻辑分离。

11. 自动加载(Autoload / Singleton)

  • 在项目设置中注册的场景或脚本,自动成为全局单例。
  • 适合存放全局数据、游戏管理器、音频管理器等。

12. 组(Groups)

  • 给节点添加标签(如“enemy”、“collectible”),便于批量获取或调用方法。
  • 使用 add_to_group() 和 get_tree().get_nodes_in_group() 操作。

13. 着色器(Shaders)

  • 用 Godot 着色器语言(类似 GLSL)编写自定义渲染效果。
  • 可应用于材质(Material)或后处理,实现复杂视觉效果。

14. 场景实例化与继承

  • 实例化:将一个场景作为子节点添加到另一个场景,形成组合。
  • 继承:一个场景可以继承另一个场景,并覆盖或扩展其节点属性,类似面向对象的继承。