Cocos2d-x 3.2 之 进度条 progressTimer

Cocos2d-x 3.2 之 进度条 progressTimer,第1张

概述***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 好长时间没有更博了。。 有点懒啊。。 亲身经历提示广大猿们:换季了,防感冒! 言归正传,最近在做 三消的手游, 关卡设计是没指望了,只能做个限时的,所以,就研究了

***************************************转载请注明出处:http://blog.csdn.net/lttree********************************************


好长时间没有更博了。。

有点懒啊。。

亲身经历提示广大猿们:换季了,防感冒!


言归正传,最近在做 三消的手游,

关卡设计是没指望了,只能做个限时的,所以,就研究了研究schedule,

这个以后再更新,

度娘搜索的时候,看到了进度条的progresstimer,

这个很好玩的样子,于是就做了下,感觉不错。



1.What?

API解释:

Progresstimer是Node的子类。 该类根据百分比来渲染显示内部的Sprite对象。 变化方向包括径向,水平或者垂直方向。

就是这样的情况:




2. How?

这个的实现就是通过progresstimer

与之前版本不同,

之前版本类型很多:

kCCProgresstimerTypeRadialccw,扇形逆时针形式 kCCProgresstimerTypeRadialCW,扇形顺时针形式 kCCProgresstimerTypeHorizontalbarLR,从左往右增张的形式 kCCProgresstimerTypeHorizontalbarRL,从右往左增张的形式 kCCProgresstimerTypeVerticalbarBT,从下往上增张的形式 kCCProgresstimerTypeVerticalbarTB,从上往下增张的形式

而现在Type只有两种:




①条型的设置

就是第三个图:

<span >// 添加图片auto sprite = Sprite::create("h7.png");	// 新建progresstimer对象,将图片载入进去Progresstimer *ct= Progresstimer::create(sprite);ct->setposition(Point(visibleSize.wIDth/2,visibleSize.height/2));	// 设置Tag,为后面更新准备ct->setTag(10);ct->setScale(0.2);this -> addChild(ct);// 设置初始的百分比,0~100 可以是0或者100ct->setPercentage(0);// 选择类型,是条型还是时针型ct->setType(kCCProgresstimerTypebar);//ct->setReverseProgress(true);	// 下面两个条形的进阶ct->setMIDpoint(Point(0,0));ct->setbarChangeRate(Point(0,1));scheduleUpdate();</span>

然后,在.h 声明函数 voID update( float t )

在.cpp定义函数

<span >voID HelloWorld::update( float t ){	// 通过上面Tag设置,获取对象	CCProgresstimer *ct=(CCProgresstimer*)getChildByTag(10);	// 获取当前进度	int num = ct->getPercentage();	// 设置进度速度(此处为每帧+1)	ct->setPercentage( ++num );	// 设置了循环播放	if( num >= 100 )		ct -> setPercentage(0);}</span>

此处,我是通过帧数来控制的速度,

当然也可以通过 自己调用的update来设置速度。


条形的可以从上到下,从下向上,或者从中间向两边

这个的控制,就是通过上面代码中,进阶的部分:

<span >ct->setMIDpoint(Point(0,1));</span>

setMIDpoint 是定义从哪开始

这个和锚点的设置一样,0,0左下角,1,1是右上角

setbarChangeRate 是 定义 方向

1,0是自下而上

0,1是自左向右


②时针型的设置

<span >	// 添加图片	auto sprite = Sprite::create("h7.png");		// 新建progresstimer对象,将图片载入进去	Progresstimer *ct= Progresstimer::create(sprite);	ct->setposition(Point(visibleSize.wIDth/2,visibleSize.height/2));		// 设置Tag,为后面更新准备	ct->setTag(10);	ct->setScale(0.2);	this -> addChild(ct);	// 设置初始的百分比,0~100 可以是0或者100	ct->setPercentage(0);	// 选择类型,是条型还是时针型	ct->setType(kCCProgresstimerTypeRadial);	ct->setReverseProgress(false);		// 下面两个条形的进阶//	ct->setMIDpoint(Point(0,0));//	ct->setbarChangeRate(Point(0,1));	scheduleUpdate();</span>


update函数还是那样,

默认是顺时针,

setReverseProgress

——false 顺时针

——true 逆时针


这样第二个的图片就实现了。


③ 第一个图片那种如何实现呢?

其实,So easy

只需要弄一张暗一点的图片,在底下衬着:

<span >auto sprite2 = Sprite::create("h7_02.png");sprite2->setScale(0.2);sprite2->setposition(Point(visibleSize.wIDth/2,visibleSize.height/2));this -> addChild(sprite2);</span>

就是这样~

进度条你学会了吗?

同为新手,如有错误,敬请指出,共同进步 O(∩_∩)O~



***************************************转载请注明出处:http://blog.csdn.net/lttree********************************************

总结

以上是内存溢出为你收集整理的Cocos2d-x 3.2 之 进度条 progressTimer全部内容,希望文章能够帮你解决Cocos2d-x 3.2 之 进度条 progressTimer所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005180.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存