CocosCreator实现技能冷却效果

 更新时间:2021年04月15日 09:45:58   作者:property-Cocos  
这篇文章主要介绍了CocosCreator实现技能冷却效果,同学们可以跟着教程,亲手试一下,代码都是可以复用的

CocosCreator实现技能CD效果

在很多游戏里面都有技能,玩家在点击技能按钮后技能会有一个冷却的时间,当冷却时间过了之后技能才可以再次使用

在cocos中实现这个效果很简单,需要用到精灵组件
首先将技能按钮的图片拖到canvas下

然后在技能按钮下新建一个label
像这样

然后新建TS脚本把下面的代码复制粘贴进去

const {ccclass, property} = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

    @property(cc.Sprite)
    skill:cc.Sprite = null;//技能精灵

    @property(cc.Label)
    time_label:cc.Label = null;//显示技能冷却剩余时间的文字

    @property
    time:number = 3;//技能冷却时间

    @property
    isshow_label:boolean = true;//是否显示文字

    onLoad(){
        this.skill.fillRange = 1;//游戏开始的时候技能的填充范围是1
    }

    update(dt:number){
        if(this.skill.fillRange != 1){//如果技能精灵的填充不为1 也就是说已经使用了技能
            this.skill.fillRange += dt / this.time;//恢复技能   每帧恢复的值为帧率 / 技能冷却时间
            this.time_label.string = Math.floor(((1 - this.skill.fillRange) * this.time)).toString();//每帧更新技能剩余时间
            //技能剩余时间首先1 - 技能精灵的填充度再 * 技能冷却时间,最后Math.floor取整

            if(this.isshow_label == true){//如果可以显示文字
                this.time_label.node.active = true;//显示技能冷却剩余时间
            }        }
        if(this.skill.fillRange == 1){//如果技能精灵的填充为1 也就是说技能还没被使用
            this.skill.getComponent(cc.Button).interactable = true;//启动按钮
            this.time_label.node.active = false;//隐藏技能冷却剩余时间
        }
    }

    onbtn(){//按下技能按钮时的事件
        this.skill.fillRange = 0;//技能填充范围设置为0
        console.log("使用了技能");//打印log
        this.skill.getComponent(cc.Button).interactable = false;//禁用按钮
    }

}

每一句代码我都写了很详细的注释哦

把写好的脚本挂到技能按钮上,然后绑定节点

可以根据需要随意修改

  • Time是技能的冷却时间,想改多少改多少
  • Isshow_time是是否显示冷却剩余时间的文字,如果不想让文字显示就把他勾掉,默认是显示

光写代码是不够的,还需要给技能按钮做一些设置
需要改动sprite(精灵)组件并且给技能按钮添加button(按钮)组件

按照图片调好

  1. Type 需要把精灵的渲染模式改为填充
  2. Fill Type 把填充方式改为扇形填充
  3. Fill Center 修改扇形的中心点 0,0为左下角1,1为右上角 我们希望扇形围绕中心点来填充,所以改成0.5,0.5
  4. Fill Range 把填充总量改为1

最后给技能按钮添加button(按钮)组件

绑定的事件就是onbtn,为了好看再把button组件的Transition改为COLOR

大功告成,这样就可以了
点击运行看一下

真不错

在点击技能按钮的时候想实现什么功能就把代码都放在onbtn里面就可以了

放这里面就可以

比如可以在按下技能按钮的时候播放一个特效动画

以上就是CocosCreator实现技能冷却效果的详细内容,更多关于CocosCreator技能冷却的资料请关注脚本之家其它相关文章!

相关文章

  • js统计页面的来访次数实现代码

    js统计页面的来访次数实现代码

    这篇文章主要介绍了如何使用js统计页面的来访次数,需要的朋友可以参考下
    2014-05-05
  • localStorage过期时间设置的几种方法

    localStorage过期时间设置的几种方法

    聊到localStorage想必熟悉前端的朋友都不会陌生,在实际的应用场景中,我们往往需要让localStorage设置的某个key能在指定时间内自动失效,所以基于这种场景,我们如何去解决呢,本文就详细的介绍一下
    2021-12-12
  • Javascript立即执行函数(IIFE)实例详解

    Javascript立即执行函数(IIFE)实例详解

    IIFE全拼Imdiately Invoked Function Expression,是一个在定义的时候就立即执行的JavaScript函数,这篇文章主要给大家介绍了关于Javascript立即执行函数的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • JS电梯导航的实现示例

    JS电梯导航的实现示例

    本文主要介绍了JS电梯导航的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • js 数组实现一个类似ruby的迭代器

    js 数组实现一个类似ruby的迭代器

    今天突然发现js的数组处理起来真是麻烦,代码一些就是一大堆,相比起ruby的迭代器来真是逊色不少。
    2009-10-10
  • JS滚轮控制图片缩放大小和拖动的实例代码

    JS滚轮控制图片缩放大小和拖动的实例代码

    本文通过实例代码给大家介绍了js 滚轮控制图片缩放大小和拖动,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-11-11
  • 前端百度地图添加点并跳转到百度地图进行导航完整代码

    前端百度地图添加点并跳转到百度地图进行导航完整代码

    web开发过程中经常碰到需要调用百度地图来视线定位导航的过程,许多技术博客上介绍的都是调用百度地图的api,这篇文章主要给大家介绍了关于前端百度地图添加点并跳转到百度地图进行导航的相关资料,需要的朋友可以参考下
    2024-07-07
  • jquery中click等事件绑定及移除的几种方法小结

    jquery中click等事件绑定及移除的几种方法小结

    这篇文章主要介绍了jquery中绑定事件与解绑事件是常用到的写法,这里总结了几种常见的绑定事件与解绑事件的方法,需要的朋友可以参考下
    2023-05-05
  • Javascript 调试利器 Firebug使用详解六

    Javascript 调试利器 Firebug使用详解六

    有时候,为了更清楚方便的查看输出信息,我们可能需要将一些调试信息进行分组输出,那么可以使用console.group来对信息进行分组,在组信息输出完成后用console.groupEnd结束分组。
    2009-07-07
  • 微信小程序使用Echarts和分包的完整步骤

    微信小程序使用Echarts和分包的完整步骤

    这篇文章主要给大家介绍了关于微信小程序使用Echarts和分包的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论