微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

程序实例:Progresstimer实现效果1

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

然后定义一个Progress类

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

  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. }


执行结果:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐