Cocos2d-x 中 CCProgressTimer
CCProgressTimer,创建使用这个节点可以大致实现两个作用的效果:
其一:在游戏中几乎大部分的游戏启动界面都是游戏加载画面,那么用到的一般是进度条提示加载进度,其使用的就是CCProgressTimer。
其二:在游戏中需要对精灵的出现等动作制作一些渐显的效果。
(1)类型一般就是两种:
1 typedef enum { 2 /// Radial Counter-Clockwise 3 kCCProgressTimerTypeRadial, 4 /// Bar 5 kCCProgressTimerTypeBar, 6 } CCProgressTimerType;
①类型1:radial(环形)
1 CCSize wSize = CCDirector::sharedDirector()->getWinSize(); 2 progressTimer = CCProgressTimer::create(CCSprite::create("progress.gif")); 3 progressTimer->setType(kCCProgressTimerTypeRadial); 4 // 默认的情况下,环形渐变的方向是:顺时针 5 // 改变其渐变的方向 Makes the ridial CCW (逆时针) 6 progressTimer->setReverseProgress(true); 7 progressTimer->setPosition(wSize.width/2,wSize.height/2); 8 this->addChild(progressTimer);
②类型2:bar (条形:包括vertical 和 horizontal)
渐变的方向问题:
vertical竖直方法包括从上到下和从下到上;
horizontal水平方向包括从左到右和从右到左。
这里涉及到两个设置参数:
首先是setMidpoint设置起点
其次是setBarChangeRate设置变化rate
如果不用变化的方向,则设置该方向为0,否则设置为1。
1 CCSize wSize = CCDirector::sharedDirector()->getWinSize(); 2 progressTimer = CCProgressTimer::create(CCSprite::create("progress.gif")); 3 progressTimer->setType(kCCProgressTimerTypeBar); 4 5 //从左到右 6 progressTimer->setMidpoint(ccp(0, 0.5)); 7 progressTimer->setBarChangeRate(ccp(1, 0)); 8 9 //从右到左 10 // progressTimer->setMidpoint(ccp(1, 0.5)); 11 // progressTimer->setBarChangeRate(ccp(1, 0)); 12 13 //从上到下 14 // progressTimer->setMidpoint(ccp(0.5, 1)); 15 // progressTimer->setBarChangeRate(ccp(0, 1)); 16 17 //从下到上 18 // progressTimer->setMidpoint(ccp(0.5, 0)); 19 // progressTimer->setBarChangeRate(ccp(0, 1)); 20 21 progressTimer->setPosition(wSize.width/2,wSize.height/2); 22 this->addChild(progressTimer);
(2) 执行变化
①、如果是要实现精灵渐变的显示效果:
创建CCProgressTo或者是CCProgressFromTo动作,让CCProgressTimer执行。
CCProgressTo和CCProgressFromTo的区别是:
前者:Progress to percentage(初始化有两个参数)(float duration, float fPercent)
后者:Progress from a percentage to another percentage(初始化有三个参数)(float duration, float fFromPercentage, float fToPercentage)
1 CCProgressTo *progressTo = CCProgressTo::create(2.0, 100); 2 //等价于: 3 //CCProgressFromTo *progressFromTo = CCProgressFromTo::create(2.0, 0, 100); 4 progressTimer->runAction(CCRepeatForever::create(progressTo));
②、如果是要实现加载进度条的效果:
需要重载update方法,在这个方法中实现进度条percentage的变化。
1 this->scheduleUpdate();
1 void HelloWorld::update(float dt) 2 { 3 float percentage = progressTimer->getPercentage(); 4 5 if (percentage < 100) { 6 percentage += 1; 7 progressTimer->setPercentage(percentage); 8 } 9 }
转载于:https://www.cnblogs.com/atong/p/3309785.html
Cocos2d-x 中 CCProgressTimer相关推荐
- 浅谈cocos2d游戏中天气系统的简单实现
一.前言 此博客由一个新手游戏程序编写,没有高深的技术,基本是天气效果表现和代码设计的浅谈,如果有更好的实现方法,欢迎指正. 二.背景 该系统设计背景:2D游戏.正交45度表现地图.以及同一张地图上存 ...
- 【IOS】如何在cocos2d 游戏中添加 移动广告
最近有需要在一款Cocos2d 游戏里面添加移动广告,大家都知道,现在有很多的移动广告平台,每个平台都有自己的SDK,每个SDK的方法,流程又都不一样,找来找去,找到了 果合移动广告. 它自己的网站上 ...
- 如何在Cocos2D游戏中实现A*寻路算法(五)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- Cocos2d—android 中常用的工具类
<span style="font-size:18px;"> 在开发游戏过程中通常会用到一个经常编写的重复的代码,比如加载游戏地图,从地图中加载指定点的集合,序列帧的播 ...
- 如何在Cocos2D游戏中实现A*寻路算法(三)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- 如何在Cocos2D游戏中实现A*寻路算法(七)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- 如何在Cocos2D游戏中实现A*寻路算法(二)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- cocos2d JS 中的数组拼接与排序
1 var arrA = [];//创建三个局部变量的新数组 2 var arrB = []; 3 var arrC = []; 4 var newCards = this.MyMahjong;//创 ...
- 【iOS-Cocos2d游戏开发之十五】详解CCProgressTimer 进度条并修改cocos2d源码实现“理想”游戏进度条!...
为什么80%的码农都做不了架构师?>>> 李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接: http://www.himigam ...
最新文章
- [USACO12MAR]拖拉机
- 理解Flight框架核心
- 快手基于RocketMQ的在线消息系统建设实践
- hdu 5036 Explosion bitset优化floyd
- pcap_open 和 pcap_open_live
- 【狂神MySQL笔记】常用命令行语句(1)
- Pads9.5的PCB文件转allegro16.6的BRD文件方法
- 免费U盘数据恢复软件有哪些,如何免费恢复U盘的数据
- DEV pivotGridControl 单元格内容变色
- html屏幕遮挡,遮挡屏幕怎么设置 为什么手机上会出现请勿遮挡屏幕顶端
- Vulkan_间接绘制(vkCmdDrawIndexedIndirect)
- 关于class not fount的错误
- 共射极放大电路静态工作点自动调整分析
- 【idea文件夹右键新建,没有Java Class选项】
- 【物联网+区块链=?】展锐、蚂蚁链、广和通联合发布可信上链模组
- 计算机组成原理组成.ppt,计算机组成原理xu.ppt
- 多核多线程中小和尚老和尚取水喝水问题
- 教程get | K8S部署OpenStack容器云(下)
- 为百度阅读web端添加工具栏——百阅栏的诞生
- 数据赋能 兴业惠民 | 山东省第三届数据应用创新创业大赛潍坊分赛场火热报名中
热门文章
- mysql删除重复sql_mysql中删除完全重复数据的准确SQL语句
- 【mybatis mapper XML】自增主键
- 【spring boot】支持webjars
- javascript Window 对象模型
- 【若依(ruoyi)】datetimepicker日期和时间插件
- 【maven插件】asciidoctor-maven-plugin:编译Asciidoc
- python下的所有文件_python批量复制文件夹下所有文件大小
- c语言程序设计第二版李学刚,C语言程序设计(第2版)李学刚教学资源教学课件2-7 动态变量.pptx...
- layui导入模板数据_实物资产管理软件操作手册(数据接口)
- mysql dump 导入导出_使用mysqldump导入导出数据