cocos2d-x——CCActionInterval(延时动作)例子

bool HelloWorld::init()

{

    //

    // 1. super init first

    if ( !CCLayer::init() )

    {

        return false;

    }

    

    CCSprite *sp=CCSprite::create("Icon.png");

    sp->setPosition(ccp(100100));

    this->addChild(sp, 01);

    

    CCMenuItemFont *label=CCMenuItemFont::create("移动到动作");

    CCMenuItemFont *label1=CCMenuItemFont::create("再移动动作");

    CCMenuItemFont *label2=CCMenuItemFont::create("跳跃到动作");

    CCMenuItemFont *label3=CCMenuItemFont::create("再跳跃到动作");

    CCMenuItemFont *label4=CCMenuItemFont::create("淡入动作");

    CCMenuItemFont *label5=CCMenuItemFont::create("淡出动作");

    CCMenuItemToggle *toggle=CCMenuItemToggle::createWithTarget(this,menu_selector(HelloWorld::menuCallback), label,label1,label2,label3,label4,label5,NULL);

    

    CCMenu *menu=CCMenu::create(toggle,NULL);

    

    this->addChild(menu);

    

       

    

    


       return true;

}

void HelloWorld::menuCallback(CCObject *pSender)

{

    CCSprite *spr=(CCSprite*)this->getChildByTag(1);

    static int index=0;

    switch (index)

    {

        case 0:

        {

            //第一个参数为移动所需的时间,第三个参数为目标位置。

            CCActionInterval *moveto=CCMoveTo::create(5ccp(300100));

            spr->runAction(moveto);

             break;

        }

           case 1:

        {//第一个参数为移动所需要的时间,第三个参数为从目标位置移动的位置。

            CCActionInterval * moveBy=CCMoveBy::create(5ccp(100100));

            CCActionInterval *actionByBack=moveBy->reverse();//动作moveBy的反向动作。

            spr->runAction(actionByBack);

            break;

        }

        

         case 2:

        {//第一个参数为跳跃所需要的时间,第三个参数为跳跃到的位置,第三个参数为跳跃高度,第四个参数为跳跃次数,。

            CCActionInterval *jumpTo=CCJumpBy::create(2ccp(300200), 504);

            spr->runAction(jumpTo);

            break;

        }

          

        case 3:

        {

            //第一个参数为跳跃所需要的时间,第二个参数为从目前基础上再跳跃的参数,第三个参数为跳跃高度,第四个参数为跳跃次数,。

            CCActionInterval *jumpBy=CCJumpBy::create(2ccp(200100), 504);

            CCActionInterval *actionByBack=jumpBy->reverse();//动作jumpBy的反向动作。

            spr->runAction(actionByBack);

            break;

            

        }

            

            case 4:

        {

            CCActionInterval *fadeOut=CCFadeOut::create(2);//动作需要的时间。

            spr->runAction(fadeOut);

            break;

            

        }

            case 5:

        {

            CCActionInterval *fadeIn=CCFadeIn::create(2);//动作需要的时间。

            spr->runAction(fadeIn);

            break;

        }

            

            

    }

    

    index=index==5?0:index+1;

    

    

    

    

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值