java进度条timer,CCProgressTimer进度条效果

收集整理的两个进度条效果,第一个常用于技能冷却,第二个用于加载进度或血量之类

bool HelloWorld::init()

{

if ( !CCLayer::init() )

{

return false;

}

CCSprite *s2=CCSprite::create("pa2.png");

s2->setPosition(ccp(200,200));

addChild(s2,0);

CCSprite *s=CCSprite::create("pa1.png");

CCProgressTimer *pt=CCProgressTimer::create(s);

pt->setPosition(ccp(200,200));

//转圈的CD实现

pt->setType(cocos2d::CCProgressTimerType(kCCProgressTimerTypeRadial));

//从中间到外的出现

this->addChild(pt,1);

CCProgressTo *t=CCProgressTo::create(8,100);

pt->runAction(CCRepeatForever::create(t));

CCSize size = CCDirector::sharedDirector()->getVisibleSize();

CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

// 设置进度条的背景图片 我们把他放到屏幕下方的1/5处

CCSprite* loadbackimg=CCSprite::create("lodingbg.png");

loadbackimg->setPosition(ccp(size.width/2 + origin.x,size.height/5 + origin.y));

this->addChild(loadbackimg,1);

// 添加进度条

CCSprite* loadimg=CCSprite::create("longding.png");

CCProgressTimer* pt2 = CCProgressTimer::create(loadimg);

pt2->setType(kCCProgressTimerTypeBar);// 设置成横向的

//可以看作是按矩形显示效果的进度条类型

pt2->setMidpoint(ccp(0,1)); // 设置进度方向

pt2->setBarChangeRate(ccp(0,1)); // 设置进度为水平还是垂直方向

//重新设置锚点

pt2->setPosition(ccp(size.width/2 + origin.x,size.height/5 + origin.y-5));

pt2->setPercentage(10);

this->addChild(pt2,2,1);

//为该层设置定时器

this->scheduleUpdate();

return true;

}

void HelloWorld::update(float dt)

{

// 刷新进度

CCProgressTimer* pt=(CCProgressTimer*)this->getChildByTag(1);

float now=pt->getPercentage();

if(now == 100){

now = 0;

}

pt->setPercentage(now + 1);

}

932337b75cfa2bd00ac613c1420ba20d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值