Cocos2d只安排一次

时间:2011-05-27 19:50:28

标签: cocos2d-iphone

如何只制作一次cocos2d计划选择器?现在我能做的最好的事情是:

[self schedule:@selector(eventHappend:) interval:2];

eventHappend:

- (void)eventHappend: (ccTime) dt
{
    [self unschedule:@selector(eventHappend:)];
    // Do stuff
}

但这似乎是一种解决方法......有一种方法只能安排一次吗?

4 个答案:

答案 0 :(得分:9)

您可以在节点上运行一系列操作,CCDelay后跟一个调用您的方法的CCCallFunc。

喜欢这个......

[self runAction:[CCSequence actions:[CCDelayTime actionWithDuration:2], 
                                    [CCCallFunc actionWithTarget:self selector:@selector(eventHappened)],
                                    nil]];

答案 1 :(得分:3)

- (void) scheduleOnce: (SEL)selector delay: (ccTime)delay 

计划仅运行一次的选择器,延迟为0或更大

http://www.cocos2d-iphone.org/api-ref/latest-stable/interface_c_c_node.html#afe99d609f17c4c849e4543805ffeceab

答案 2 :(得分:0)

你也可以用这个:

[self unschedule:_cmd];

在您的eventHappened函数中 - 它将使您的日程安排运行一次。

答案 3 :(得分:-1)

对于你需要的东西来说,大多数都太复杂了(尽管它们很简单)

您只需要以下代码:

[self performSelector:@selector(eventHappend:) withObject:nil afterDelay:2];

它将只运行你的方法eventHappend一次。