godot 淡入淡出平滑切换场景

godot新建一个空工程
在这里插入图片描述

根节点重命名为scene1
在这里插入图片描述

然后添加一个TextureRect节点,添加一张背景图1.jpg(网上下载的,你也可以替换成自己喜欢的背景图)
再添加一个Button控件,里面的文字输入“start”,按钮放置在右上角。
保存场景scene1

给场景添加一个gd脚本:
在这里插入图片描述

然后给按钮添加一个pressed的点击函数:
在这里插入图片描述
在这里插入图片描述

将场景scene1.tscn复制一份,改为scene2.tscn,替换scene2的背景图片为1.jpg,这样你就有了2个场景,接下来我们要做的就是在这两个场景之间进行切换。

复制场景的操作:
在这里插入图片描述
在这里插入图片描述

点击Duplicate
打开场景scene2,将根节点手动改名为scene2,按钮上的文字改成“back”
如图所示:
在这里插入图片描述

打开脚本scene1.gd(可以看到,复制后的场景,其实是共用一个脚本scene1.gd)

extends Control

func _on_Button_pressed():
	if self.name == "scene1":
		get_tree().change_scene("res://scene2.tscn")
	else:
		get_tree().change_scene("res://scene1.tscn")

保存,选择scene1.tscn为初始场景,运行。
在这里插入图片描述

从场景一切换到了场景2,再点击按钮,场景2又切换回了场景1,但是没有过渡动画效果,接下来我们在场景切换过程中加入淡入和淡出动画,让场景切换更加平滑。

颜色选择0c0c0c(或者其他接近黑色的颜色值)
在这里插入图片描述

添加一个AnimationPlayer节点,添加一个scenechange动画,时长为0.5秒,单次动画。
选中ColorRect,在其属性面板里:
在这里插入图片描述

在0秒添加第一个关键帧:将透明度调成0,点击该属性值旁边的“钥匙”,添加关键帧
在这里插入图片描述

在第0.5秒添加第二个关键帧:
在这里插入图片描述
在这里插入图片描述

给SceneChanger添加一个脚本SceneChanger.gd

extends CanvasLayer

onready var animator = $AnimationPlayer
onready var color = $ColorRect

func change_scene(path):
	color.show()
	animator.play("scenechange")
	yield(animator, "animation_finished")
	get_tree().change_scene(path)
	animator.play_backwards("scenechange")
	yield(animator, "animation_finished")
	color.hide()

让动画先正常播放,然后再倒放。

将ColorRect设置为不可见
在这里插入图片描述

将SceneChanger.tscn设置为单例:
点击菜单:Project -> Project Settings -> AutoLoad
(不要忘记点击Add按钮,点击后看到如图所示,才算是添加成功)
在这里插入图片描述

scene1.gd脚本内容改成:

extends Control

func _on_Button_pressed():
	if self.name == "scene2":
		SceneChanger.change_scene("res://scene1.tscn")
	else:
		SceneChanger.change_scene("res://scene2.tscn")

效果:
在这里插入图片描述
说明:因为博客上传图片大小有限制,效果动图并未截取全屏。

参考:
B站视频教程:【Godot】实现场景的平滑过渡切换

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值