天天看點

Cococs2d-X 部分動作類的具體實作

void Action()

{

    CCSprite *sp=(CCSprite *)this->getChildByTag(10);

    //直線移動

    //CCMoveTo *move=CCMoveTo::create(1, ccp(400,300));//時間 坐标  //絕對移動,移動之後不可以再移動

    //CCMoveBy *by=CCMoveBy::create(1, ccp(200,200));//相對移動,移動後還可以移動

    //sp->runAction(move);

    //sp->runAction(by);

    //sp->runAction(by->reverse());//逆向 坐标的反方向

    //放大

    //CCScaleTo *scale=CCScaleTo::create(3, 2);//3秒内放大原來的2倍

    //CCActionInterval *action=(CCActionInterval *)scale->copy();//拷貝這個動作

   // CCSize s=sp->getContentSize();//擷取的是原始尺寸

//     sp->runAction(scale);

//    sleep(4);//停止4秒

//    CCRect rect=sp->boundingBox();//擷取實際的尺寸 矩形碰撞

//    CCLog("%f %f",rect.size.width,rect.size.height);

    //旋轉

//    CCRotateTo *ratate=CCRotateTo::create(3, 480);//3秒内旋轉480度 480與360取餘

//    sp->runAction(ratate);

//    CCRotateBy *by=CCRotateBy::create(3, 720);//3秒内旋轉720度 480與360取餘

//    sp->runAction(by);

//    //跳躍

//    CCJumpTo *to=CCJumpTo::create(3, ccp(300, 400), 50, 2);//時間 最後的坐标 每次的高度 跳的次數

//    sp->runAction(to);

//    CCJumpBy *by=CCJumpBy::create(3, ccp(200, 300), 50, 2);//時間 最後的坐标 每次的高度 跳的次數

//    sp->runAction(by);

    //閃爍

//    CCBlink *blink=CCBlink::create(3, 5);//3秒内閃爍5次

//    sp->runAction(blink);

//    

//    sp->removeFromParent();//移除精靈,圖像不可見

//    //貝塞爾曲線

//    ccBezierConfig bezier;

//    bezier.controlPoint_1=CCPointMake(0, 100);

//    bezier.controlPoint_2=CCPointMake(300, 240);

//    bezier.endPosition=CCPointMake(400, 100);

//    CCBezierTo *bezierTo=CCBezierTo::create(3, bezier);

//    sp->runAction(bezierTo);

//    //先執行移動 後放大 連續的動作

//    CCMoveTo *to=CCMoveTo::create(2, ccp(400, 300));

//    CCScaleTo *scale=CCScaleTo::create(2, 5);

//    CCSequence *seq=CCSequence::create(to,scale,NULL);

//    sp->runAction(seq);

//    

//    //一邊移動一邊放大

//    CCSpawn *spawn=CCSpawn::create(to,scale,NULL);

//    sp->runAction(spawn);

//    //永久性執行的動作

//    CCRotateBy *by=CCRotateBy::create(2, 360);

//    CCRepeatForever *forever=CCRepeatForever::create(by);

//    sp->runAction(forever); //forever一般不放在CCSequence與CCSpawn中執行,會出現問題

//    //先讓精靈移動、反向移動  在讓其永久的執行

//    CCMoveBy *move=CCMoveBy::create(3, ccp(300,300));

//    CCDelayTime *delay=CCDelayTime::create(2);

//    CCSequence *seq=CCSequence::create(move,delay,move->reverse(),delay,NULL);

//    CCRepeatForever *forver=CCRepeatForever::create(seq);

//    sp->runAction(forver);

//    //改變動作的執行對象

//    CCSprite *sp1=CCSprite::create("bird2.png");

//    sp1->setPosition(ccp(200, 200));

//    this->addChild(sp1);

//    CCMoveBy *move1=CCMoveBy::create(2, ccp(100, 100));

//    CCTargetedAction *action=CCTargetedAction::create(sp1, move1);//改變動作的執行對象

//    sp->runAction(action);

    //進度條

    CCProgressTo *progressTo=CCProgressTo::create(5, 100);//5秒内到100%

    CCProgressTimer *timer=CCProgressTimer::create(CCSprite::create("bird.png"));

    timer->setType(kCCProgressTimerTypeRadial);//扇形

    timer->setPosition(ccp(240, 240));

    timer->setMidpoint(ccp(0.5, 0.5));//中心點

    this->addChild(timer);

    CCSequence *seq=CCSequence::create(progressTo,CCDelayTime::create(2),NULL);

    timer->runAction(CCRepeatForever::create(seq));

    CCProgressTo *progressTo1=CCProgressTo::create(5, 100);

    CCProgressTimer *timer1=CCProgressTimer::create(CCSprite::create("progress.png"));

    timer1->setType(kCCProgressTimerTypeBar);//長條

    timer1->setPosition(ccp(240, 160));

    timer1->setMidpoint(ccp(1,1));

    this->addChild(timer1);

    CCSequence *seq1=CCSequence::create(progressTo1,CCDelayTime::create(1),NULL);

    timer1->runAction(seq1);

}