我在上一篇博客中介绍了Progresstimer的用法,这篇博客决定写一些使用Progress实现一些简单的效果,
程序实例:Progresstimer实现效果1
首先在工程目录下的Resource文件夹中添加两张图片
然后定义一个Progress类
在Progress.h中添加下面的代码
#ifndef _Progress_H_#define _Progress_H_#include "cocos2d.h"USING_NS_CC;class Progress : public cclayer{public: static CCScene* scene(); bool init(); CREATE_FUNC(Progress); voID scheduleFunc(float dt);};#endif
在Progress.cpp中添加下面代码
#include "Progress.h"CCScene* Progress::scene(){ CCScene* scene = CCScene::create(); Progress* layer = Progress::create(); scene->addChild(layer); return scene;}bool Progress::init(){ cclayer::init(); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCPoint center = ccp(winSize.wIDth / 2,winSize.height / 2); CCSprite* bg = CCSprite::create("2.png"); CCSprite* sprite = CCSprite::create("1.png"); bg->setposition(center); addChild(bg); CCProgresstimer* progress = CCProgresstimer::create(sprite); progress->setposition(center); addChild(progress); //设置进度条的模式 //kCCProgresstimerTypebar表示条形模式 progress->setType(kCCProgresstimerTypebar); //设置进度条变化的方向 //ccp(0,1)表示沿着y轴变化 progress->setbarChangeRate(ccp(0,1)); //设置进度条的起始位置 //ccp(0,0)表示下面 progress->setMIDpoint(ccp(0,0)); //设置进度条的ID progress->setTag(100); //创建一个定时器 schedule(schedule_selector(Progress::scheduleFunc),0.1f); return true;}voID Progress::scheduleFunc(float dt){ //通过进度条的ID得到进度条 CCProgresstimer* progress = (CCProgresstimer*)getChildByTag(100); //设置progress的进度,每调用一次进度加一 progress->setPercentage(progress->getPercentage() + 1); //当进度大于或者等于100时 if(progress->getPercentage() >= 100) { //终止定时器 unscheduleAllSelectors(); }}
执行结果:
程序实例:Progresstimer实现效果1
首先在工程目录下的Resource文件夹中添加两张图片
在Progress.cpp中添加下面的代码
#include "Progress.h"CCScene* Progress::scene(){ CCScene* scene = CCScene::create(); Progress* layer = Progress::create(); scene->addChild(layer); return scene;}bool Progress::init(){ cclayer::init(); //设置背景颜色为白色 cclayercolor* layer = cclayercolor::create(ccc4(255,255)); addChild(layer); CCSize winSize = CCDirector::sharedDirector()->getWinSize(); CCPoint center = ccp(winSize.wIDth / 2,winSize.height / 2); CCSprite* bg = CCSprite::create("4.png"); CCSprite* sprite = CCSprite::create("3.png"); bg->setposition(center); addChild(bg); CCProgresstimer* progress = CCProgresstimer::create(sprite); progress->setposition(center); addChild(progress); //设置进度条的ID progress->setTag(100); //创建一个定时器 schedule(schedule_selector(Progress::scheduleFunc),0.1f); return true;}voID Progress::scheduleFunc(float dt){ //通过进度条的ID得到进度条 CCProgresstimer* progress = (CCProgresstimer*)getChildByTag(100); //设置progress的进度,每调用一次进度加一 progress->setPercentage(progress->getPercentage() + 1); //当进度大于或者等于100时 if(progress->getPercentage() >= 100) { //终止定时器 unscheduleAllSelectors(); }}
执行结果:
以上是内存溢出为你收集整理的Cocos2d-X中使用ProgressTimer实现一些简单的效果全部内容,希望文章能够帮你解决Cocos2d-X中使用ProgressTimer实现一些简单的效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)