cocos2d-x过程动作CCProgressTo示例学习笔记

//

// SpriteProgressToRadial

//

//------------------------------------------------------------------

void SpriteProgressToRadial::onEnter()

{

    SpriteDemo::onEnter();

    

    CCSize s = CCDirector::sharedDirector()->getWinSize();



    CCProgressTo *to1 = CCProgressTo::create(2, 100);//动作时间,显示百分比

    CCProgressTo *to2 = CCProgressTo::create(2, 100);



    CCProgressTimer *left = CCProgressTimer::create(CCSprite::create(s_pPathSister1));//传人精灵对象

    

    //kCCProgressTimerTypeBar为进度条的形式,cocos2d-x封装了2种显示方式:条形:kCCProgressTimerTypeBar,圆弧形:kCCProgressTimerTypeRadial

    left->setType( kCCProgressTimerTypeBar );//设置动画类型

    

    addChild(left);

    left->setPosition(ccp(100, s.height/2));

    left->setMidpoint(ccp(0.25f, 0.75f));//设置开始展示点的位置,动画开始的起始点

    left->runAction( CCRepeatForever::create(to1));

    

    CCProgressTimer *right = CCProgressTimer::create(CCSprite::create(s_pPathBlock));

    right->setType(kCCProgressTimerTypeRadial);

    // Makes the ridial CCW

    right->setReverseProgress(true);//逆时针方向展开

    addChild(right);

    right->setPosition(ccp(s.width-100, s.height/2));

    right->runAction( CCRepeatForever::create(to2));

}



//另外,当类型为直线扫描的动画(条形)时,

right->setMidpoint(ccp(x, y)); //设置动画开始点x轴,y轴的起始坐标(百分百),

//示例:

        right->setMidpoint(ccp(1,0));  // 动画从右下角开始向其它地方扩展

        right->setMidpoint(ccp(0, 1));   //动画从左上角开始向其它地方扩展

left->setBarChangeRate(ccp(x,y))  //设置动画完成后,x轴、y轴最终改变的比例(百分比),

//示例:

       left->setBarChangeRate(ccp(0.5,0)); // 此例开始时x显示一半,y轴显示全部,最终,x轴改变0.5,y轴改变0



//这两个函数结合:

left->setType(kCCProgressTimerTypeBar);

left->setMidpoint(ccp(0,0));

left->setBarChangeRate(ccp(1,0));     // 效果为整张动画从最左边的边界开始,向右边界推进,直到最终完全显示





你可能感兴趣的:(cocos2d-x)