🧱 StaticBody2D
StaticBody2D 是静态物理体,用于构建不需要移动的环境元素,如墙壁、地面和障碍物。它参与碰撞检测,但不会响应物理引擎的力。
- 用途:构建不动的环境元素,如墙壁、地面和障碍物。
- 特点:不会响应物理引擎的力。
🛡️ CollisionShape2D
CollisionShape2D 为父节点提供碰撞形状。它是所有物理体(如 StaticBody2D、CharacterBody2D 等)定义碰撞区域的关键节点。
- 用途:为物理体定义碰撞区域。
- 注意:在编辑器中调整碰撞形状时,避免使用缩放工具,推荐使用形状的大小调整手柄。
🗺️ TileMapLayer
TileMapLayer 是 Godot 4.x 中用于构建瓦片地图的新节点。它取代了旧版本中的 TileMap。
- 用途:构建瓦片地图。
- 特点:支持多层次的瓦片布局,适用于构建复杂的地图。
🎮 CharacterBody2D
CharacterBody2D 是用于实现玩家或 NPC 控制的物理体。它不受物理引擎的影响,需要通过代码控制其移动。
- 用途:实现玩家或 NPC 的控制。
- 特点:不受物理引擎的影响,需要通过代码控制其移动。
- 注意:使用
move_and_collide()或move_and_slide()方法来处理碰撞。
🎞️ AnimatedSprite2D
AnimatedSprite2D 是用于播放 2D 动画的节点。它可以使用单独的图像文件或精灵表来创建动画。
- 用途:播放 2D 动画。
- 特点:支持使用单独的图像文件或精灵表来创建动画。
🌐 Area2D
Area2D 定义了一个 2D 空间区域。它用于检测其他 CollisionObject2D 节点的重叠、进入和退出事件。
- 用途:检测区域内的碰撞。
- 特点:可以用于触发事件,如玩家进入区域时播放音效。
🖼️ CanvasLayer
CanvasLayer 是一个 2D 渲染层,用于将其子节点绘制在独立的层上。它常用于实现 UI、背景和过渡效果。
- 用途:实现 UI、背景和过渡效果。
- 特点:可以将子节点绘制在独立的层上,避免与游戏世界的其他元素混合。
🎥 Camera2D
Camera2D 节点会影响当前视口(viewport)的显示内容,通常用于实现视图的平移、缩放、限制等功能。
- 继承关系:
Camera2D继承自Node2D,因此具有Node2D的位置、旋转和缩放属性。 - 视口注册:摄像机会在其父节点的视口中注册,如果没有父节点,默认注册到全局视口。
- 激活摄像机:每个视口只能有一个激活的摄像机。可以通过设置
current属性为true或调用make_current()方法来激活摄像机。