Cocos2dx学习笔记12:cocos2dx进度条(ProgressTimer)

发布时间:2020-07-28 23:21:11 作者:frankxzb
来源:网络 阅读:707

在游戏开发中,我们通常需要做一个游戏的进度条来过渡游戏的场景切换或者显示游戏资源的加载进度。

同样的来说,进度条可以在角色扮演游戏中作为玩家或者怪物头顶的生命条,或者消除类休闲游戏的倒计时等。进度条多种多样,如何合理的使用根据游戏的项目需求而定。

cocos2dx中,进度条使用 ProgressTimer 来实现,首先要定义精灵绑定进度条。

打开我们创建的项目cocosxuexi,直接改写init()初始化里的代码来实现,先把以前写的代码注释掉。

1、首先在HelloWorldScene.h文件里定义2个指针。

public:

virtualvoid update(float dt);//默认调度器

private:

ProgressTimer* progress1;//定义进度条指针

LabelTTF* numsTTF;//定义标签指针


2、HelloWorldScene.cppinit()方法里创建一个进度条和一个进度条的边框

Size visibleSize = Director::getInstance()->getVisibleSize();

Vec2 origin = Director::getInstance()->getVisibleOrigin();

//创建一个进度条精灵边框  

auto progressbgSprite=Sprite::create("loadKuang.png");  

  progressbgSprite->setPosition(Vec2(origin.x + visibleSize.width/2,origin.y + visibleSize.height/2));    

this->addChild(progressbgSprite, 1);  


//创建一个进度条精灵

auto progressSprite=Sprite::create("loadBar.png");  

  progress1=ProgressTimer::create(progressSprite);      

  progress1->setType(kCCProgressTimerTypeBar);      

  progress1->setPosition(Vec2(origin.x + visibleSize.width/2,origin.y + visibleSize.height/2));    

//进度动画运动方向,可以多试几个值,看看效果  

  progress1->setMidpoint(Vec2(0, 0));      

//进度条宽高变化  

  progress1->setBarChangeRate(Vec2(1, 0));      

  progress1->setPercentage(0); //设置进度条百分比为0%

this->addChild(progress1, 1);    

  numsTTF=CCLabelTTF::create("0", "Thonburi", 18);      

  numsTTF->setPosition(origin.x + visibleSize.width/2,origin.y + visibleSize.height/2);      

this->addChild(numsTTF, 1);  

  scheduleUpdate();  //默认调度器,调用update()方法



   3、HelloWordScene.cpp里实现update()方法


voidHelloWorld::update(floatdt)

{

float cu=progress1->getPercentage();  //获取百分比    

   cu=cu+1.0f;  //进度条进度 每次加1%      

   progress1->setPercentage(cu);  


if (cu <= 100)    //如果进度小于等于100%  

   {

auto str1 = String::createWithFormat("%.2f%%",cu);  

numsTTF->setString(str1->getCString());  //设置标签显示内容

   }

//如果进度条达到100%,则停止

else

   {

unscheduleUpdate();//停止默认调度器

}

}


到此一个可用的进度条就已经实现了。如果用来实现场景自动切换,直接在update()里停止调度器后就实现自动切换操作。

效果预览:

Cocos2dx学习笔记12:cocos2dx进度条(ProgressTimer)


Cocos2dx学习笔记12:cocos2dx进度条(ProgressTimer) 

http://www.byjth.com/biji/32.html


推荐阅读:
  1. Cocos2dx学习笔记8:cocos2dx坐标系
  2. Cocos2dx学习笔记9:cocos2dx锚点(Anchor Point)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

进度条 cocos2dx progresstimer

上一篇:PHP中使用smarty循环

下一篇:56张图详细分解Flash CS6中对齐面板的使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》