Callback Action
ActionÀÌ ½ÇÇà µÉ ¶§, ÄݹéÇÔ¼ö¸¦ ¸¸µé¾î ½ÇÇà ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ÄݹéÇÔ¼ö ¸®½ºÆ®ÀÌ´Ù. 1. CCCallFunc : ¸Å°³º¯¼ö°¡ ¾ø´Â ¸Þ¼µå È£Ãâ
1. CCCallFunc : ¸Å°³º¯¼ö°¡ ¾ø´Â ¸Þ¼µå È£ÃâCCCallFunc
CCAction *act1 = CCMoveTo::create(1.0f, ccp(200, 200));
CCAction *act2 = CCCallFunc::create(this, callfunc_selector(HelloWorld::CCCallFunc)); CCAction *action = CCSequence::create((CCFiniteTimeAction *)act1, act2, NULL); mWoman->runAction(action); void HelloWorld::CCCallFunc() { OutputDebugString(L"¾Ö´Ï¸ÞÀÌ¼Ç Á¾·á"); }
2. CCCallFuncN : CCNode¸¦ ¸Å°³º¯¼ö·Î ¸Þ¼µå È£ÃâCCNode¸¦ ¸Å°³º¯¼ö·Î Àü´ÞÇÑ´Ù. ¿¹Á¦¿¡¼´Â CCNode È®´ëÇÏ°í ÀÖ´Ù. CCCallFuncN
CCAction *act1 = CCMoveTo::create(1.0f, ccp(200, 200));
CCAction *act2 = CCCallFuncN::create(this, callfuncN_selector(HelloWorld::CallFuncN)); CCAction *action = CCSequence::create((CCFiniteTimeAction *)act1, act2, NULL); mWoman->runAction(action); void HelloWorld::CallFuncN(CCNode *node) { node->setScale(2); }
3. CCCallFuncND : CCNode¿Í µ¥ÀÌÅ͸¦ ¸Å°³º¯¼ö·Î ¸Þ¼µå È£ÃâCCCallFuncND
CCAction *act1 = CCMoveTo::create(2, ccp(200, 200));
static float scale = 3; CCAction *act2 = CCCallFuncND::create(this, callfuncND_selector(HelloWorld::CallFuncND), (void*)&scale); CCAction *action = CCSequence::create( (CCFiniteTimeAction *)act1, act2, NULL); mWoman->runAction(action); void HelloWorld::CallFuncND(CCNode *node, void *n) { node->setScale(*(float*)n); } 4. CCCallFuncO : ÁöÁ¤µÈ CCObject¸¦ ¸Å°³º¯¼ö·Î ¸Þ¼µå È£ÃâCCCallFuncO
CCAction *act1 = CCMoveTo::create(2, ccp(200, 200));
CCAction *act2 = CCCallFuncO::create(this, callfuncO_selector(HelloWorld::CallFuncO), mWoman); CCAction *action = CCSequence::create( (CCFiniteTimeAction *)act1, act2, NULL); mWoman->runAction(action); void HelloWorld::CallFuncO(cocos2d::CCObject *pSender) { ((CCNode*)pSender)->setScale(3); }
|