Godot 4 入门(02):用一个玩家场景理解节点、场景与实例

162 阅读1分钟

一、 节点是有单一职责的积木

Sprite2D 负责显示图片,Camera2D 负责观察画面,之后还会用 CollisionShape2D 描述碰撞。节点不必包办一切;多个节点按照父子关系组合,才形成完整对象。

二、 场景是一棵保存下来的节点树

新建场景,以 Node2D 为根节点并命名为 Player,添加两个子节点:

Player (Node2D)
├── Sprite2D
└── Camera2D

给 Sprite2D.Texture 设置 icon.svg,把场景保存到 scenes/player/player.tscn。这里的 .tscn 是可读文本场景文件。

三、实例不是复制粘贴

打开 main.tscn,删除原来的 Sprite2D,点击“实例化子场景”,选择 player.tscn:

Main (Node2D)
└── Player
    ├── Sprite2D
    └── Camera2D

再添加两个 Player 实例并移动位置。修改 player.tscn 中 Sprite2D 的缩放,三个实例会一起更新;单独修改某个实例的 Position,则只影响它自己。这正是“模板与实例”的关系。

1.png

四、生命周期先记两个节点

  • 节点进入场景树后会收到 _enter_tree()。
  • 自己与子节点准备完成后会收到 _ready()。
  • 父节点被释放时,其子节点也会随之释放。

运行游戏后切换场景面板的“本地/远程”,远程场景树展示的是此刻真正运行的节点,排查动态节点时非常有用。

2.png