从CCCallFuncN调用委托函数?

时间:2012-02-16 08:20:33

标签: objective-c cocos2d-iphone

我可以从CCCallFuncN调用委托函数吗?

或者我必须在sam类中创建一个函数作为调用委托的动画吗?

- (void) foo
{
id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(callDelegate:)];
}

- (void) callDelegate
{
[delegate moveDone];
}

3 个答案:

答案 0 :(得分:0)

如果您正在谈论正在实施的协议的正式委托方法,例如触摸方法,加速度计等,那么不,您不应该手动调用它们。它们在特定时间从系统接收特定数据,并且不会由您自己的代码调用。

然而,如果"委托"你正在引用自己正在创建的方法,然后是的,你可以从CCCallFuncN中调用它们,就像它的设计形式一样。

答案 1 :(得分:0)

您在self中看到“[CCCallFuncN actionWithTarget:self selector:@selector(callDelegate:)]”部分了吗?好吧,你为包含所需函数的对象的实例更改它。因此,如果您的函数位于mySprite,则可以写下:

[CCCallFuncN actionWithTarget:mySprite selector:@selector(callDelegate:)];

答案 2 :(得分:0)

你应该使用CCCallFunc作为当前代码。

CCCallFuncN for -(void)func:(id)node

CCCallFuncND for -(void)func:(id)node param:(void*)param

我也有一个问题: 我使用CCCallFuncND,这段代码运行良好。谁能告诉我原因? :

[CCCallFuncND actionWithTarget:self selector:@selector(func1:) data:data];
//
-(void)func1:(void*)data{
}
相关问题