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 480360取余

//    sp->runAction(ratate);

//    CCRotateBy *by=CCRotateBy::create(3, 720);//3秒内旋转720 480360取余

//    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一般不放在CCSequenceCCSpawn中执行,会出现问题

    

//    //先让精灵移动、反向移动  在让其永久的执行

//    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);

}

你可能感兴趣的:(Cococs2d-X 部分动作类的具体实现)