Action

½ºÇÁ¶óÀÌÆ®¸¦ ¿òÁ÷ÀÌ´Â ¾×¼Ç¿¡ ´ëÇؼ­ ¾Ë¾Æ º»´Ù.
½ºÇÁ¶óÀÌÆ®´Â CCActionInterval Ŭ·¡½º¸¦ ÅëÇÏ¿© ¿òÁ÷ÀδÙ.

½ºÇÁ¶óÀÌÆ®ÀÇ ±âº» »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù.

CCActionInterval *action = CCMoveBy::create(2, ccp(400, 2));
mWoman->runAction(action);

By : ÇöÀç °ª¿¡¼­ ÁöÁ¤ÇÑ °ª Â÷ÀÌ ¸¸Å­ À̵¿
To : ÁöÁ¤ÇÑ °ªÀ¸·Î À̵¿

CCMenuItemFont¸¦ ÀÌ¿ëÇØ Action, Reverse, Reset, Jump ³×°¡Áö ¸Þ´º¸¦ »ý¼ºÇÑ´Ù.

bool HelloWorld::init()
{
    bool bRet = false;

  
    if( !CCLayerColor::initWithColor(ccc4(255, 255, 255, 255)))
    {
        return true;
    }

    bRet = true;

    CCMenuItemFont::setFontSize(50);
    CCMenuItemFont::setFontName("fonts/Nanum Brush Script.ttf");

    CCMenuItemFont *pMenuItem1 = CCMenuItemFont::create(
        "Action",
        this,
        menu_selector(HelloWorld::DoClickTag));
    
    CCMenuItemFont *pMenuItem2 = CCMenuItemFont::create(
        "Reverse",
        this,
        menu_selector(HelloWorld::DoClickTag));

    CCMenuItemFont *pMenuItem3 = CCMenuItemFont::create(
        "Reset",
        this,
        menu_selector(HelloWorld::DoClickTag));

    CCMenuItemFont *pMenuItem4 = CCMenuItemFont::create(
        "Jump",
        this,
        menu_selector(HelloWorld::DoClickTag));

    CCMenu *pMenu = CCMenu::create(pMenuItem1, pMenuItem2, pMenuItem3, pMenuItem4, NULL);

    pMenu->alignItemsHorizontally();
    pMenu->setPosition(ccp(240, 300));

    pMenuItem1->setColor( ccc3( 255, 0, 0 ));
    pMenuItem2->setColor( ccc3( 0, 255, 0 ));
    pMenuItem3->setColor( ccc3( 0, 0, 255 ));
    pMenuItem4->setColor( ccc3( 0, 0, 0 ));

    pMenuItem1->setTag(1);
    pMenuItem2->setTag(2);
    pMenuItem3->setTag(3);
    pMenuItem4->setTag(4);
    this->addChild(pMenu);

    CCSprite* pWoman = CCSprite::create("Images/grossinis_sister1.png");
    pWoman->setPosition( ccp(30, 200));
    this->addChild( pWoman);

    mWoman = pWoman;
    return bRet;
}

Action, Reverse, Reset, Jump 4°³ÀÇ ¾×¼ÇÀº ´ÙÀ½°ú °°´Ù.

void HelloWorld::DoClickTag(CCObject* pSender)
{
    CCMenuItem *item = (CCMenuItem*)pSender;
    int n = item->getTag();

    if(n == 1)  //Action
    {
        CCActionInterval *action = CCMoveBy::create(2, ccp(400, 2));
        mWoman->runAction(action);
    }

    if(n == 2)  //Reverse
    {
        CCActionInterval *action = CCMoveBy::create(2, ccp(400, 2));
        action = action->reverse();
        mWoman->runAction(action);
    }

    if(n == 3)  //Reset
    {
        //Reset
        mWoman->stopAllActions();
        mWoman->setPosition( ccp( 30, 200));
        mWoman->setRotation( 0.0f);
        mWoman->setScale( 1.0f);        
    }

    if(n == 4)  //Jump
    {
        CCActionInterval *action = CCJumpBy::create(2, ccp(400, 2), 50, 3);
        mWoman->runAction(action);
    }
}

Action ó¸®

½ºÇÁ¶óÀÌÆ®¸¦ ÁöÁ¤ÇÑ ½Ã°£µ¿¾È À̵¿°Å¸® ¸¸Å­ ¿òÁ÷ÀδÙ.

CCMoveBy* create(
         float duration,  //¾Ö´Ï¸ÞÀÌ¼Ç Áö¼Ó ½Ã°£ ÃÊ´ÜÀ§
         const CCPoint& position)  //À̵¿ °Å¸®

CCActionInterval *action = CCMoveBy::create(2, ccp(400, 2));
mWoman->runAction(action);

 

Reverse ó¸®

¾Ö´Ï¸ÞÀ̼ÇÀ» ¹Ý´ë·Î Àç»ýÇÑ´Ù. reverse ¸í·ÉÀ» ÁÖ¸é µÈ´Ù.
CCMoveTo¸¦  reverse Çϸé assert ¹ß»ýÇÑ´Ù.

CCActionInterval *action = CCMoveBy::create(2, ccp(400, 2));
action = action->reverse();
mWoman->runAction(action);

 

Reset ó¸®

¾Ö´Ï¸ÞÀ̼ÇÀ» ¿øÇÏ´Â À§Ä¡·Î Áï½Ã À̵¿½ÃŲ´Ù.
ÁøÇàÇÏ´Â ¾Ö´Ï¸ÞÀ̼ÇÀ» ¸ØÃß°í À̵¿ ½ÃÄÑ¾ß ÇÑ´Ù.
stopAllActions ¸í·É¾î·Î ¹Ù·Î ¾Ö´Ï¸ÞÀ̼ÇÀ» ¸ØÃâ¼ö ÀÖ´Ù.

mWoman->stopAllActions();
mWoman->setPosition( ccp( 30, 200));
mWoman->setRotation( 0.0f);
mWoman->setScale( 1.0f);

 

Jump ó¸®

ÁöÁ¤ÇÑ ½Ã°£ À̵¿ °Å¸® »çÀÌ¿¡ ¸î ¹øÀÇ Á¡ÇÁ¸¦ ÇÒÁö Á¦¾î ÇÒ ¼ö ÀÖ´Ù.
CCJumpBy Ŭ·¡½º·Î ¾×¼ÇÀ» »ý¼ºÇÑ´Ù.

CCActionInterval *action = CCJumpBy::create(2, ccp(400, 2), 50, 3);
mWoman->runAction(action);