一、 节点是有单一职责的积木
Sprite2D 负责显示图片,Camera2D 负责观察画面,之后还会用 CollisionShape2D 描述碰撞。节点不必包办一切;多个节点按照父子关系组合,才形成完整对象。
二、 场景是一棵保存下来的节点树
新建场景,以 Node2D 为根节点并命名为 Player,添加两个子节点:
text
Player (Node2D)
├── Sprite2D
└── Camera2D
给 Sprite2D.Texture 设置 icon.svg,把场景保存到 scenes/player/player.tscn。这里的 .tscn 是可读文本场景文件。
三、实例不是复制粘贴
打开 main.tscn,删除原来的 Sprite2D,点击"实例化子场景",选择 player.tscn:
text
Main (Node2D)
└── Player
├── Sprite2D
└── Camera2D
再添加两个 Player 实例并移动位置。修改 player.tscn 中 Sprite2D 的缩放,三个实例会一起更新;单独修改某个实例的 Position,则只影响它自己。这正是"模板与实例"的关系。

四、生命周期先记两个节点
- 节点进入场景树后会收到
_enter_tree()。 - 自己与子节点准备完成后会收到
_ready()。 - 父节点被释放时,其子节点也会随之释放。
运行游戏后切换场景面板的"本地/远程",远程场景树展示的是此刻真正运行的节点,排查动态节点时非常有用。
