加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2d-X中使用ProgressTimer实现一些简单的效果

发布时间:2020-12-14 19:08:21 所属栏目:百科 来源:网络整理
导读:我在上一篇博客中介绍了ProgressTimer的用法,这篇博客决定写一些使用Progress实现一些简单的效果, 程序实例:ProgressTimer实现效果1 首先在工程目录下的Resource文件夹中添加两张图片 然后定义一个Progress类 在Progress.h中添加下面的代码 [cpp] view pl

我在上一篇博客中介绍了ProgressTimer的用法,这篇博客决定写一些使用Progress实现一些简单的效果,

程序实例:ProgressTimer实现效果1

首先在工程目录下的Resource文件夹中添加两张图片

然后定义一个Progress类

在Progress.h中添加下面的代码

[cpp] view plain copy
  1. #ifndef_Progress_H_
  2. #define_Progress_H_
  3. #include"cocos2d.h"
  4. USING_NS_CC;
  5. classProgress:publicCCLayer
  6. {
  7. public:
  8. staticCCScene*scene();
  9. boolinit();
  10. CREATE_FUNC(Progress);
  11. voidscheduleFunc(floatdt);
  12. };
  13. #endif

在Progress.cpp中添加下面代码

    #include"Progress.h"
  1. CCScene*Progress::scene()
  2. {
  3. CCScene*scene=CCScene::create();
  4. Progress*layer=Progress::create();
  5. scene->addChild(layer);
  6. returnscene;
  7. }
  8. boolProgress::init()
  9. CCLayer::init();
  10. CCSizewinSize=CCDirector::sharedDirector()->getWinSize();
  11. CCPointcenter=ccp(winSize.width/2,winSize.height/2);
  12. CCSprite*bg=CCSprite::create("2.png");
  13. CCSprite*sprite=CCSprite::create("1.png");
  14. bg->setPosition(center);
  15. addChild(bg);
  16. CCProgressTimer*progress=CCProgressTimer::create(sprite);
  17. progress->setPosition(center);
  18. addChild(progress);
  19. //设置进度条的模式
  20. //kCCProgressTimerTypeBar表示条形模式
  21. progress->setType(kCCProgressTimerTypeBar);
  22. //设置进度条变化的方向
  23. //ccp(0,1)表示沿着y轴变化
  24. progress->setBarChangeRate(ccp(0,1));
  25. //设置进度条的起始位置
  26. progress->setMidpoint(ccp(0,0));
  27. //设置进度条的ID
  28. progress->setTag(100);
  29. //创建一个定时器
  30. schedule(schedule_selector(Progress::scheduleFunc),0.1f);
  31. returntrue;
  32. voidProgress::scheduleFunc(floatdt)
  33. //通过进度条的ID得到进度条
  34. CCProgressTimer*progress=(CCProgressTimer*)getChildByTag(100);
  35. //设置progress的进度,每调用一次进度加一
  36. progress->setPercentage(progress->getPercentage()+1);
  37. //当进度大于或者等于100时
  38. if(progress->getPercentage()>=100)
  39. //终止定时器
  40. unscheduleAllSelectors();
  41. }
  42. }

执行结果:



程序实例:ProgressTimer实现效果1

首先在工程目录下的Resource文件夹中添加两张图片





在Progress.cpp中添加下面的代码

    //设置背景颜色为白色
  1. CCLayerColor*layer=CCLayerColor::create(ccc4(255,255));
  2. addChild(layer);
  3. CCSizewinSize=CCDirector::sharedDirector()->getWinSize();
  4. CCPointcenter=ccp(winSize.width/2,winSize.height/2);
  5. CCSprite*bg=CCSprite::create("4.png");
  6. CCSprite*sprite=CCSprite::create("3.png");
  7. bg->setPosition(center);
  8. addChild(bg);
  9. CCProgressTimer*progress=CCProgressTimer::create(sprite);
  10. progress->setPosition(center);
  11. addChild(progress);
  12. //设置进度条的ID
  13. progress->setTag(100);
  14. //创建一个定时器
  15. schedule(schedule_selector(Progress::scheduleFunc),0.1f);
  16. true;
  17. floatdt)
  18. //通过进度条的ID得到进度条
  19. CCProgressTimer*progress=(CCProgressTimer*)getChildByTag(100);
  20. //设置progress的进度,每调用一次进度加一
  21. progress->setPercentage(progress->getPercentage()+1);
  22. //当进度大于或者等于100时
  23. if(progress->getPercentage()>=100)
  24. //终止定时器
  25. unscheduleAllSelectors();
  26. }


执行结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读