您的位置:首页 > 移动开发 > Cocos引擎

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

2013-10-29 09:58 316 查看
bool
HelloWorld::init()
{

    //////////////////////////////

    // 1. super init first
   
if ( !CCLayer::init() )
    {

        return
false;
    }

    

    CCSprite *sp=CCSprite::create("Icon.png");
    sp->setPosition(ccp(100,
100));
   
this->addChild(sp,
0, 1);

    

    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(5,
ccp(300,
100));
            spr->runAction(moveto);
            
break;
        }
          
case 1:

        {//第一个参数为移动所需要的时间,第三个参数为从目标位置移动的位置。
           
CCActionInterval * moveBy=CCMoveBy::create(5,
ccp(100,
100));
           
CCActionInterval *actionByBack=moveBy->reverse();//动作moveBy的反向动作。
            spr->runAction(actionByBack);
           
break;
        }

        
        
case 2:

        {//第一个参数为跳跃所需要的时间,第三个参数为跳跃到的位置,第三个参数为跳跃高度,第四个参数为跳跃次数,。
           
CCActionInterval *jumpTo=CCJumpBy::create(2,
ccp(300,
200), 50, 4);
            spr->runAction(jumpTo);
           
break;
        }

          
       
case 3:
        {

           
//第一个参数为跳跃所需要的时间,第二个参数为从目前基础上再跳跃的参数,第三个参数为跳跃高度,第四个参数为跳跃次数,。
           
CCActionInterval *jumpBy=CCJumpBy::create(2,
ccp(200,
100), 50, 4);
           
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;

    

    

    

    
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: