Cocos2d-x游戏 技能冷去 时间进度

2024-08-24 10:38

本文主要是介绍Cocos2d-x游戏 技能冷去 时间进度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

头文件的定义:

class HelloWorld : public Layer

{

public:

    ProgressTimer * progressTimer;

    MenuItemImage * mi;

    Menu *m;

    Sprite * sprite;

    Size s;

/** 技能按钮点击回调 */

    void    skillClickCallBack(Ref* obj);

    

    /** 技能冷却完毕回调*/

    void    skillCoolDownCallBack(Node* node);

}

文件.CPP中去实现具体的方法和效果:

在init初始化方法中加入:

        

//正常显示按钮

    mi = MenuItemImage::create("skill_1.png", "skill_1.png", CC_CALLBACK_1(HelloWorld::skillClickCallBack,this));

    mi->setPosition(Vec2(s.width/2, s.height/2));

    m = Menu::create(mi,nullptr);

    m->setPosition(Vec2::ZERO);

    this->addChild(m);



然后是回调的方法



/** 技能按钮点击回调 */

void HelloWorld::skillClickCallBack(Ref* obj)

{

    //设置按钮不可用

    mi->setEnabled(false);

    

    

    //灰模板按钮

    sprite = Sprite::create("stencil.png");

    sprite->setOpacity(160);

    sprite->setPosition(Vec2(s.width/2, s.height/2));

    progressTimer = ProgressTimer::create(sprite);

    progressTimer->setPosition(Vec2(s.width/2, s.height/2));

    this->addChild(progressTimer);

    // 设置精灵进度条为顺时针

    progressTimer->setType(ProgressTimer::Type::RADIAL);

    /** 让进度条执行一个动作 显示出动画效果 逐渐覆盖半透模板形成冷却效果;这里进行计时冷却动画的实现和时间控制*/

    auto pto = ProgressTo::create(2, 100);

    auto call = CallFuncN::create(this,callfuncN_selector(HelloWorld::skillCoolDownCallBack));

    progressTimer->runAction(Sequence::create(pto,call, NULL));

    

}


/** 技能冷却完毕回调*/

void HelloWorld::skillCoolDownCallBack(Node* node)

{

    //恢复触摸

    mi->setEnabled(true);

    //隐藏

    progressTimer->setVisible(false);

    

}



效果如图所示:





好,这个简单的功能我们就实现 了,代码量非常小,是不是感觉很简单,哈哈

这篇关于Cocos2d-x游戏 技能冷去 时间进度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102251

相关文章

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

批处理以当前时间为文件名创建文件

批处理以当前时间为文件名创建文件 批处理创建空文件 有时候,需要创建以当前时间命名的文件,手动输入当然可以,但是有更省心的方法吗? 假设我是 windows 操作系统,打开命令行。 输入以下命令试试: echo %date:~0,4%_%date:~5,2%_%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% 输出类似: 2019_06