Godot全节点速览:2D节点

节点是Godot的基础概念,通过节点和节点的组合,我们可以创建出复杂的游戏场景,我观看了B站搬运42分钟内解释所有219个 Godot 节点!,结合自己阅读官方文档以及实践对Godot全节点记录笔记。

Node2D

简介:2D游戏对象,被所有2D相关节点继承。
属性

  • Vector2 global_position:全局位置,存x,y坐标
  • float global_rotation:全局旋转,存旋转弧度
  • float global_ratation_degrees:全局旋转,存旋转度数
  • Vector2 global_scale:全局缩放,存x,y缩放比例
  • float global_scale:全局倾斜,存倾斜弧度
  • Transform2D global_transform:全局 Transform2D,存2D变化矩阵

所有的属性均有相对于父节点的局部属性。
作用:使用 Node2D 作为父节点可以移动、缩放和旋转 2D 项目中的子节点。还可以控制节点的渲染顺序。

Sprite2D

简介:显示 2D 纹理的节点。
属性

  • Texture2D texture:要绘制的Texture2D对象
  • Vector2 offset:纹理绘图偏移量,存x,y上偏移的值
  • bool centered:是否居中,为 true时,纹理居中
  • bool flip_v:是否垂直翻转,为true时,纹理垂直翻转
  • bool flip_h:是否水平翻转,为true时,纹理水平翻转
  • int frame:当前显示帧,可以在Sprite2D中导入精灵表,储存当前显示第几帧
  • Vector2i frame_coords:当前显示帧在精灵表中的坐标,储存此帧在第几行第几列。
  • int hframe:在精灵表中的列数
  • int vframe:在精灵表中的行数
  • bool region_enabled:是否开启区域裁剪,为ture时,可以从一个较大的纹理中裁剪部分区域
  • bool region_filter_clip_enabled:是否开启区域过滤裁剪,为true时,只处理或显示指定区域内的内容,而忽略区域外的部分
  • Rect2 region_rect:显示的区域,储存显示区域的范围
    作用:通用的2D纹理渲染。

AnimatedSprite2D

简介:与Sprite2D节点类似,但是包含多张纹理,可用作动画。

属性

  • SpriteFrames sprite_frames:包含动画帧的SpriteFrames资源
  • String animation:当前播放的动画名称
  • int frame:当前显示的帧索引
  • float speed_scale:动画播放速度的缩放因子
  • bool playing:是否正在播放动画
  • bool centered:是否将精灵居中
  • Vector2 offset:绘制偏移量
  • bool flip_h:是否水平翻转
  • bool flip_v:是否垂直翻转

作用:用于创建和播放2D精灵动画,适合用于角色、物品或环境中的动态元素。

CollisionShape2D

简介:定义2D碰撞形状的节点。

属性

  • Shape2D shape:用于碰撞检测的Shape2D资源
  • bool disabled:是否禁用碰撞形状

作用:为物理对象定义碰撞区域,通常作为PhysicsBody2D或Area2D的子节点使用。

Area2D

简介:2D区域检测节点,用于检测其他物体的进入和退出。

属性

  • int collision_layer:碰撞层,决定区域属于哪些层
  • int collision_mask:碰撞掩码,决定区域可以与哪些层交互
  • bool monitorable:是否可被其他Area2D监视
  • bool monitoring:是否监视其他物体的进入和退出

作用:用于触发区域、检测重叠、实现简单的碰撞等。常用于实现拾取物品、触发事件等功能。

StaticBody2D

简介:静态物理节点,用于表示不会移动的物体。

属性

  • float constant_linear_velocity:恒定线性速度
  • float constant_angular_velocity:恒定角速度
  • int collision_layer:碰撞层,决定物体属于哪些层
  • int collision_mask:碰撞掩码,决定物体可以与哪些层交互
  • float friction:摩擦系数
  • float bounce:弹性系数
  • PhysicsMaterial physics_material_override:物理材质覆盖,用于自定义物理属性

作用:用于创建不受物理影响的静态物体,如墙壁、地面、平台等。常用于构建游戏世界的固定元素。

GpuParticles2D

简介:用于在GPU上模拟和渲染2D粒子的节点。

属性

  • int amount:粒子数量
  • float lifetime:每个粒子的生命周期
  • bool one_shot:是否为一次性粒子效果
  • bool preprocess:预处理时间,用于在粒子系统开始时预先模拟粒子
  • bool explosiveness:粒子发射的爆发性
  • float speed_scale:粒子系统的速度缩放因子
  • Vector2 gravity:粒子受重力影响的方向和强度
  • float angle:粒子发射的初始角度
  • float angle_random:粒子发射角度的随机性
  • float scale:粒子的初始缩放
  • float scale_random:粒子缩放的随机性
  • Color color:粒子的初始颜色
  • float color_random:粒子颜色的随机性
  • bool emitting:是否正在发射粒子

作用:用于创建高性能的2D粒子效果,适合用于火焰、烟雾、爆炸等视觉效果。


以上就是比较常用的2D节点,使用这些节点便可以制作大部分的2D游戏,如果想要游戏更加具有质感,可以从粒子效果、光照、音效系统进行入手。

还是建议多去阅读官方文档,我自己在学习Godot的过程中,尝试制作了一个带有音效、粒子效果等等增加游戏质感的内容,我遇到了很多问题,比方说粒子该如何发射、粒子颜色如何设置等等,这些问题基本都可以在官方文档中找到。


Godot全节点速览:2D节点
http://example.com/2024/09/05/Godot全节点速览:2D节点-1/
作者
FlyingfishFantasticfan
发布于
2024年9月5日
许可协议