我想为下面的精灵运行动作:
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; // <------------
}
当您可以将Node和Data作为参数传递时,另一个选择是使用CCCallFuncND,但是我认为带有tag的选项更简单:)