Я хочу запустить действия для спрайта, как показано ниже:
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***
}
Как я могу отправить значение в вызове функции.
Пожалуйста помоги
Вы можете использовать тег в 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 в качестве параметров, но я думаю, что вариант с тегом проще 🙂