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;
}