【Godot4自学手册】第二十六节用GPUParticles2D节点实现地宫入口的奇异光芒

我们的主人公与NPC对话完成后,夜晚来临,在城北有一处乱石岗,出现了奇异光芒,这是地宫的入口,但是有一妖怪把守,我们必须消灭妖怪后才可发现地宫入口。这一节,主要记录利用粒子系统GPUParticles2D节点,实现地宫口的奇异光芒。先看一下效果:
请添加图片描述

一、新建场景和节点

单击新建场景按钮,在场景面板中选择创建其它节点,在弹出创建节点对话框中选择GPUParticles2D节点,最后单击创建按钮,将场景保存到Scenes目录下命名为FantasticLight。
请添加图片描述
选中GPUParticles2D节点,在其检查器中,将GPUParticle2D->Process Material属性选择新建ParticleProcessMaterial。
请添加图片描述

二、设置GPUParticles2D节点属性

1.首先我们准备一张光效素材,如下:
请添加图片描述
2.将该光线素材拖入到GPUParticles2D-》Texture,如下所示:
请添加图片描述

3.在检查器面板找到CanvasItem->Material,将material设置为新建CanvasItemMaterial,操作如下:
请添加图片描述

4.在CanvasItemMaterial面板中LightMode,这个选项是为了在夜幕降临的时候粒子不收光线影响。Pratisles Animation启用,启用的目的是我们的素材是张1*5的动画的素材,所以将Particles Anim H Frames设置为5。
请添加图片描述

5.ParticleProcessMaterial属性面板中Accelerations->Gravity(重力)中x,y,z均设置为0。
请添加图片描述

Spawn->Velocity下, Inital Velocity Min(初始速度最小值)设置为100;Inital Velocity Max(初始速度最大值)设置为200;Direction属性x,y,z均设为0。
请添加图片描述

Display->Animation中,Speed Min(速度最小值)设为1,Speed Max(速度最小值)设为3,这表示的是我们的5帧动画播放速度为1到3之间随机。
请添加图片描述

Display->Scale属性中Scale Min设置为1;Scale Max设置为3,表示粒子在1和3之间进行随机缩放。Scale Curve设置为CureveTexture,在面板Curve属性中,设置曲线如下,表示每个立在先从小变大,在从大变小。
请添加图片描述

Spawn->Angle属性中,Angle Min设置为0;Angle Max设置为360,表示每个粒子旋转角度为0到360之间的随机数。
请添加图片描述

Display->Hue Variation属性中,Variation Min设置为-1;Variation Max设置为1,这样设置会让我们的粒子变得色彩缤纷。
请添加图片描述

这样我们发光粒子就做好了。

三、主场景设置

切换到主场景,单击场景中的实例化子场景按钮,在弹出框中选择FantasticLight场景,这样就把刚才新建的场景添加到主场景中了,重命名DroomLight。然后在文件夹中拖入一张地宫入口的图片到主场景,重命名为DoorRoom。然后调整地宫入口和粒子系统到合适位置,这样地宫入口的奇异光芒就实现完成了。
请添加图片描述

最后我们调整一下逻辑,只用主人公和NPC对完话后,地宫入口和奇异光芒才会出现。因此将DroomLight和DoorRoom节点的Visible属性关闭,表示初始状态下,这两个节点隐藏。最后修改main代码。

func _on_daytime_change(da:int):	 
	if da==1:
		get_tree().create_tween().tween_property($DirectionalLight2D,"energy",0.6,2)
		$DoorRoom.visible=true
		$DroomLight.visible=true
	else:
		get_tree().create_tween().tween_property($DirectionalLight2D,"energy",1,2)
		$DoorRoom.visible=false
		$DroomLight.visible=false

这段代码的意思是,当夜晚来临的时候,第一步是将整改场景变黑,第二步是地宫入口和光芒显示。
最终效果如下:
请添加图片描述

今天就到这了,下节再见。

最近更新

  1. TCP协议是安全的吗?

    2024-03-19 13:46:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-19 13:46:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-19 13:46:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-19 13:46:01       18 阅读

热门阅读

  1. Unity 创建快捷方式开机自动启动

    2024-03-19 13:46:01       18 阅读
  2. Blazor Web的登录页

    2024-03-19 13:46:01       20 阅读
  3. 第十三届蓝桥杯省赛C&C++ 研究生组

    2024-03-19 13:46:01       19 阅读
  4. 简单来说依赖注入 Unity (c#)

    2024-03-19 13:46:01       16 阅读
  5. 在 Express 中使用 Session 认证

    2024-03-19 13:46:01       16 阅读
  6. TCP复习

    TCP复习

    2024-03-19 13:46:01      15 阅读