[Godot3.3.3] - 过渡动画

过渡动画 ScreenTransitionAnimation

项目结构

添加场景,根节点为 CanvasLayer2D 并重命名为 ScreenTransition:

image-20240712002547221

添加子节点 ColorRectAnimationPlayer,在 ColorRect 中将颜色(Color)设置为黑色:

image-20240712002657042

找到 Material,新建 Shader(先不管Shader Param 中的 Wipe Image,后面才会加入,这里是做好之后的样子):

image-20240712002743876

Shader Code

Shader 中敲入代码:

shader_type canvas_item;
// 申明 shader 的类型,因为是 2d 游戏,所以是 canvas_item 类型的uniform sampler2D wipeImage;	// 全局变量 wipeImage
uniform float percent : hint_range(0, 1);	// 限制在 01 之间的百分比范围void fragment() {float texVal = texture(wipeImage, UV).r;// 对图像的 r 通道进行采样if (texVal < percent) {// 在 Animation 中进行动态改变 percent 并且让 百分比不断变大,就可以有一个动态变透明的效果(虽然没有完全弄懂,但大致是这样没错的)COLOR.a = 0.0;}
}

AnimationPlayer

先为根节点添加一个脚本:

extends CanvasLayersignal screen_coveredfunc emit_screen_covered():emit_signal("screen_covered")// 这个函数用来发送信号

然后打开 Animation Player 添加 default 动画:

第一个轨道中的 ColorRect > material:shader 必须在 shader 检查器其中点击小钥匙添加动画帧才可以添加

image-20240712003234496

ScreenTransitionManager

新建场景 ScreenTransitionManager 并在项目设置中设置为自动加载的场景,为根节点添加脚本:

extends Nodevar screenTransitionScene = preload("res://scenes/UI/ScreenTransition.tscn")func transition_to_scene(scenePath):var screenTransition = screenTransitionScene.instance()add_child(screenTransition)yield(screenTransition, "screen_covered")get_tree().change_scene(scenePath)

调用方法

以项目中的开始菜单为例子,点击开始菜单调用函数的过程如下:

func on_playButton_pressed():$"/root/LevelManager".change_level

change_levelLevelManager中 的函数,将它这样修改即可:

func change_level(levelIndex):currentLevelIndex = levelIndexif (currentLevelIndex >= levelScenes.size()):currentLevelIndex = 0$"/root/SceenTransitionManager".transition_to_scene(levelScenes[currentLevelIndex].resource_path)	// 获取路径并通过动画过渡脚本来延迟调用场景的切换,达到淡入淡出的效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI网络爬虫022:批量下载某个网页中的全部链接

文章目录 一、介绍二、输入内容三、输出内容一、介绍 网页如下,有多个链接: 找到其中的a标签: <a hotrep="doc.overview.modules.path.0.0.1" href="https://cloud.tencent.com/document/product/1093/35681" title="产品优势">产品优…

《双流多依赖图神经网络实现精确的癌症生存分析》| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 Dual-stream multi-dependency graph neural network enables precise cancer survival analysis 《双流多依赖图神经网络实现精确的癌症生存分析》 01 文献速递介绍 癌症是全球主要的死亡原因&#xff0c;2020年约有1930万新发癌症病例和近1000万癌症相关死亡…

【Java】Idea运行JDK1.8,Build时中文内容GBK UTF-8编码报错一堆方块码

问题描述 在Windows系统本地运行一个JDK1.8的项目时&#xff0c;包管理用的Gradle&#xff0c;一就编码报错&#xff08;所有的中文内容&#xff0c;包括中文注释、中文的String字面量&#xff09;&#xff0c;但程序还是正常运行。具体如下&#xff1a; 解决 1. Idea更改编…

C++——类和对象(上)

文章目录 一、类的定义1.类定义格式2.访问限定符3.类域 二、实例化1.实例化概念2.对象⼤⼩ 三、 this指针 一、类的定义 1.类定义格式 与定义结构体类似 class ST {//成员变量int val;//成员函数void print(){cout << val << endl;}};class为定义类的关键字&…

查看尝试登服务器ssh 访问ip地址

不指定时间查看尝试登录服务器的SSH访问IP地址 # CentOS/RHEL系统 zgrep "sshd" /var/log/secure-* | grep "Failed password" | awk {print $(NF-3)} | sort | uniq -c | sort -nr | head -n 10检查过去7天的日志尝试登录服务器的SSH访问IP地址 # CentOS…

AutoMQ vs Kafka: 来自小红书的独立深度评测与对比

测试背景 当前小红书消息引擎团队与 AutoMQ 团队正在深度合作&#xff0c;共同推动社区建设&#xff0c;探索云原生消息引擎的前沿技术。本文基于 OpenMessaging 框架&#xff0c;对 AutoMQ 进行了全面测评。欢迎大家参与社区并分享测评体验。 01 测试结论 本文主要测评云…

AI克隆声音,基于函数计算部署GPT-Sovits语音生成模型

阿里云的 https://developer.aliyun.com/adc/scenario/808348a321844a62b922187d89cd5077 还是 函数计算 FC (aliyun.com) 选择 语音克隆生成 GPT-SOVITS 通过访问域名就能访问 就可以上传个人的声音&#xff0c;然后进行输出 。

【逆向基础】十、逆向工具分享之DIE(Detect It Easy)

一、简介 DIE&#xff08;Detect It Easy&#xff09;是一款可以轻松检测PE文件的程序&#xff1b;其主要作用是查壳&#xff0c;并将pe文件的内容解析出来&#xff0c;包括PE文件中包含的导入函数、导出函数的名称及地址&#xff0c;入口函数地址等&#xff0c;是技术人员分析…

nuPlan 是一个针对自动驾驶车辆的闭环机器学习(ML-based)规划基准测试

nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles nuPlan 是一个针对自动驾驶车辆的闭环机器学习&#xff08;ML-based&#xff09;规划基准测试 Abstract In this work, we propose the world’s first closed-loop ML-based planning benchmar…

乐观锁原理

乐观锁是一种并发控制的方法&#xff0c;主要用于多线程环境下&#xff0c;用于保证数据的一致性。其核心思想是&#xff1a;"在多个事务中乐观地读取数据&#xff0c;在提交时再验证是否有冲突&#xff0c;如果没有&#xff0c;则提交&#xff1b;如果有&#xff0c;则回…

Excel第30享:基于辅助列的条件求和

1、需求描述 如下图所示&#xff0c;现要统计2022年YTD&#xff08;Year To Date&#xff1a;年初至今日&#xff09;各个人员的“上班工时&#xff08;a2&#xff09;”。 下图为系统直接导出的工时数据明细样例。 2、解决思路 Step1&#xff1a;确定逻辑。“从日期中提取出…

sqlmap确定目标/实操

安装kali&#xff0c;kali自带sqlmap&#xff0c;在window系统中跟linux系统操作有区别 sqlmap是一款自动化SQL工具&#xff0c;打开kali终端&#xff0c;输入sqlmap&#xff0c;出现以下界面&#xff0c;就说明sqlmap可用。 sqlmap确定目标 一、sqlmap直连数据库 1、直连数据库…

26.Labview波形图、XY图、强度图使用精讲

我们如何使用Labview显示曲线或者制作出下面这种我们想要的曲线并随着我们输入值的变化而变化呢&#xff1f; 本文详细讲解一下每种波形图的使用方式&#xff0c;帮助大家深入了解波形图的使用技巧。 文章中所有程序均可在百度网盘下载&#xff0c;下载方式&#xff1a;复制下…

虚拟机 VMware Workstation- 安装详细步骤

目录 虚拟化概念VMware Workstation 简介一、安装准备1. 安装环境2. 软件下载 二、常见问题1. 虚拟机的【默认位置】会在C盘&#xff0c;盘符内存不够的建议改为D盘或别的盘符2. 验证许可证是否密钥是否成功。进入虚拟机点击【帮助】下的关于VMware Workstation(A)可以查看验证…

YOLOv10改进 | 主干/Backbone篇 | 利用RT-DETR特征提取网络PPHGNetV2改进YOLOv10

一、本文介绍 本文给大家带来利用RT-DETR模型主干HGNet去替换YOLOv10的主干&#xff0c;RT-DETR是今年由百度推出的第一款实时的ViT模型&#xff0c;其在实时检测的领域上号称是打败了YOLO系列&#xff0c;其利用两个主干一个是HGNet一个是ResNet&#xff0c;其中HGNet就是我们…

Java项目中,常用的SQL语句

常用的命令&#xff1a; 1.数据的增删改查 1.插入数据(进行注册&#xff09; 语法 1&#xff1a; --第一种&#xff1a; INSERT INTO 表名(列名 1,列名 2, …) ; insert into tablename(member1,member3) valuse(,); --第二种&#xff1a; INSERT INTO 表名 VALUES(值 1,值 …

使用大模型进行SQL迁移的实践总结

在现代化的项目管理和运维工作中&#xff0c;利用大模型&#xff08;如ChatGPT&#xff09;处理复杂任务已成为一种高效手段。近期我们在一个项目中尝试利用大模型将MySQL导出的SQL语句迁移为达梦信创数据库格式&#xff0c;通过几轮操作&#xff0c;我们深刻体会到提示词工程的…

旷野之间4 - 100 个 Kubernetes 面试问题及答案

100 个 Kubernetes 面试问题及答案 Kubernetes 简介 什么是 Kubernetes&#xff1f; Kubernetes 是一个开源容器编排平台&#xff0c;可自动部署、扩展和管理容器化应用程序。 什么是容器&#xff1f; 容器是一个轻量级、独立的、可执行软件包&#xff0c;其中包含运行应用…

QT--槽函数和控件篇一

一、自定义信号和槽函数 QT 将信号和槽集成在QObject类中&#xff1b;发送者和接受者都必须继承这个类。Q_OBJECT宏是实现信号和槽机制、属性系统和元对象系统的关键。Q_OBJECT宏必须出现在每个使用信号和槽的类中&#xff0c;因为它为这些类提供了必要的元数据和功能。信号在…

mindspore打卡23天之基于MobileNetv2的垃圾分类函数式自动微分

基于MobileNetv2的垃圾分类 本文档主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入&#xff0c;对图像中的垃圾物体进行检测&#xff0c;并且将检测结果图片保存到文件中。 1、实验目的 了解熟悉垃圾分类应用代码的编写&#xff08;Python语言&#xff09;&a…