第四十节实现主人公的技能释放功能(二)实现技能按钮

ops/2024/10/18 7:56:59/

看看我们今天要实现的效果是,当我们按下数字1快捷键,我们的技能按钮会进入倒计时,如下图演示:
请添加图片描述

一、新建场景和根节点设置

新建场景,选择TextureButton作为根节点,重名为SpellButton,保存场景到Scenes文件夹下。
请添加图片描述

随便拖一张图片到TextureButton到texture->normal属性内。打开ignore_texture_size属性;stretch_mode属性设置为Scale。
请添加图片描述

二、添加子节点

1.添加TextureProgressBar子节点

为根节点添加TextureProgressBar子节点,命名为Cooldown。
请添加图片描述

fill_mode设置为Counter Clockwise。texture->progress内拖入一个白色矩形图片。tint->progress属性选择一个灰色,然后透明度设置为80%;range->step设置为0.01。
请添加图片描述

2.添加Label子节点显示快捷键

为根节点添加Label子节点。命名为Key,顾名思义表示的是哪个快捷键。
请添加图片描述

vertical_alignment设置为bottom。锚点设置为左下。
请添加图片描述

3.添加Label子节点显示剩余时间

复制key结点,命名为Time,表示技能剩余时间。horizontal_alignment属性设置为Right。theme_override_font_sizes/font_size设置为8px;并开启theme_override_colors/font_shadow_color属性表示在右下产生一个黑色的阴影。
请添加图片描述

锚点设置为右下,效果如下:
请添加图片描述

4.添加Timer子节点

给根节点添加Timer子节点。
请添加图片描述

5.添加panle子节点

添加panle节点。
请添加图片描述

启用show_behind_parent属性。

三、添加脚本

为根节点添加脚本。
请添加图片描述

编写如下代码:

extends TextureButton@onready var cooldown = $Cooldown  #获取cooldown节点 
@onready var key = $Key  #获取key节点 快捷键显示节点
@onready var time = $Time #获取time节点 时间显示节点
@onready var timer = $Timer #获取时间计数器节点var change_key="": #定义快捷建变量set(v):  #设置快捷键change_key=vkey.text=vshortcut = Shortcut.new()  #新建绑定输入的快捷键。var input_key = InputEventKey.new()  #代表键盘上的某个按键被按下或松开。input_key.keycode = v.unicode_at(0) #设置快捷键shortcut.events = [input_key]  #快捷键的 InputEvent 数组。func _ready():change_key="1" #设快捷键为1cooldown.max_value = timer.wait_time  #设置剩余时间的最大值为计时器的数值set_process(false)  #设置_process函数不可用func _process(delta):time.text="%3.1f"%timer.time_left  #设置时间显示cooldown.value= timer.time_left   #时间动画显示func _on_pressed(): #单击快捷键的时候启动timer.start()  #启动计时器disabled=true  #按钮不能被单击set_process(true)  #设置_process函数可用func _on_timer_timeout():#定时器到时间后执行disabled=false  #按钮可用time.text=""  #倒计时设置为空cooldown.value=0  #动画显示时间设为0set_process(false) #设置_process函数不可用

这节就到这里吧,下期见。


http://www.ppmy.cn/ops/37990.html

相关文章

制造版图大变革!逾10座晶圆厂蓄势待发 | 百能云芯

在全球半导体产业的激烈竞争和市场需求的复杂波动中,晶圆厂建设热潮正在美国兴起,这一波建设浪潮的核心动力之一,便是美国政府推出的《芯片与科学法案》所承诺的巨额补贴,旨在提升美国在全球半导体行业的竞争力。 当地时间4月25日…

88、动态规划-乘积最大子数组

思路: 首先使用递归来解,从0开始到N,每次都从index开始到N的求出最大值。然后再次递归index1到N的最大值,再求max。代码如下: // 方法一:使用递归方式找出最大乘积public static int maxProduct(int[] num…

3.处理数据

处理数据 写在前面1.变量整型char类型bool类型浮点型类型分类 2.算术运算符除模 3.类型转换总结 写在前面 关于看书。其实我已经很久没看过书了,最近一次长时间看书还要追述到大学的时候,那时候上面都没有,就是有时间。原本我其实很爱看书的…

深度学习常用优化算法笔记介绍,各种梯度下降法详细介绍

优化算法 mini-batch梯度下降法 当一个数据集其数据量非常大的时候,比如上百万上千万的数据集,如果采用普通的梯度下降法,那么运算速度会非常慢,因为如果使用梯度下降法在每一次迭代的时候,都需要将这整个上百万的数…

【快速入门Linux】10_Linux命令—Vi编辑器

文章目录 一、vi 简介1.1 vi1.2 vim1.3查询软连接命令(知道) 二、打开和新建文件(重点)2.1 打开文件并且定位行2.2 异常处理 三、vi三种工作模式(重点)3.1 末行模式-命令 四、常用命令4.0 命令线路图4.1 移…

json文件的读取

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏笔者水平有限,欢迎各位大佬指点,相…

特化标准库中的类模板

以std::map和std::less作为载体说明如何特化标准库中的类模板。 std::map容器允许提供一个自定义的比较器。默认行为是让std::map使用一个模板类std::less<>&#xff0c;使用<运算符来比较键。如果想存储一个不能使用<进行比较的类型&#xff0c;可以为此类型特化…

【6D位姿估计】数据集汇总 BOP

前言 BOP是6D位姿估计基准&#xff0c;汇总整理了多个数据集&#xff0c;还举行挑战赛&#xff0c;相关报告被CVPR2024接受和认可。 它提供3D物体模型和RGB-D图像&#xff0c;其中标注信息包括6D位姿、2D边界框和2D蒙版等。 包含数据集&#xff1a;LM 、LM-O 、T-LESS 、IT…