Cocos2d-x: добавить параметр в callfuncN_selector

Я хочу запустить действия для спрайта, как показано ниже:

CCRotateTo* actionTo = CCRotateTo::create(0.2, 0.0f, -90.0f);

CCRotateTo* actionToBack = CCRotateTo::create(0.2, 0.0f, -180.0f);

CCFiniteTimeAction* actionChangeTexture = CCCallFuncN::create(this,
callfuncN_selector(Paddle::spriteChangeTextture));**//*i want to send value here***

runAction(CCSequence::create(actionTo,actionChangeTexture,actionToBack, NULL));void Paddle::spriteChangeTextture(CCNode* sender) {
***//i want to using parameter here, it's integer value***
}

Как я могу отправить значение в вызове функции.
Пожалуйста помоги

1

Решение

Вы можете использовать тег в CCNode. В вашем узле setTag с вашим значением. Когда ваше действие было вызвано, вы можете просто получить значение из тега отправителя.

CCRotateTo* actionTo = CCRotateTo::create(0.2, 0.0f, -90.0f);

CCRotateTo* actionToBack = CCRotateTo::create(0.2, 0.0f, -180.0f);

CCFiniteTimeAction* actionChangeTexture = CCCallFuncN::create(this,
callfuncN_selector(Paddle::spriteChangeTextture));
int value;
setTag(value); // <--------
runAction(CCSequence::create(actionTo,actionChangeTexture,actionToBack, NULL));void Paddle::spriteChangeTextture(CCNode* sender) {

int value = sender->getTag; // <------------
}

Другой вариант — использовать CCCallFuncND, когда вы можете передать Node и Data в качестве параметров, но я думаю, что вариант с тегом проще 🙂

0

Другие решения