Cocos2d iphone Cocos2d:有没有办法将同一个选择器安排n次?

Cocos2d iphone Cocos2d:有没有办法将同一个选择器安排n次?,cocos2d-iphone,scheduler,Cocos2d Iphone,Scheduler,我目前在一个对象上调度同一选择器n次的解决方案是创建一个“messanger”类的实例数组,其中作为属性,我有calltime和要调用的选择器类型,以及应该调用选择器的对象引用 然后,我在父节点类的update方法中检查这个数组,我在父节点类中添加了所有这些对象 有没有办法通过日程安排的方法做到这一点 共享主管没有给我任何有帮助的方法。我对我的解决方案相当满意,但不确定它是否是最好的 编辑:我尝试了建议的答案,不幸的是没有成功 代码如下: [f schedule:@selector(ac

我目前在一个对象上调度同一选择器n次的解决方案是创建一个“messanger”类的实例数组,其中作为属性,我有calltime和要调用的选择器类型,以及应该调用选择器的对象引用

然后,我在父节点类的update方法中检查这个数组,我在父节点类中添加了所有这些对象

有没有办法通过日程安排的方法做到这一点

共享主管没有给我任何有帮助的方法。我对我的解决方案相当满意,但不确定它是否是最好的

编辑:我尝试了建议的答案,不幸的是没有成功

代码如下:

    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:1.0f];
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:3.0f];
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:5.0f];
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:7.0f];
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:9.0f];
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:12.0f];
     ....
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:152.0f];
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:177.0f];
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:199.0f];
    [f schedule:@selector(activateForShort) interval:0 repeat:0 delay:212.0f];
f是一个对象,它只调用选择器“activateForShort”一次

我尝试将间隔和重复值修改为1,但不起作用

我想要实现的是在特定时间(例如1.0f、212.0f)调用它。


任何建议都会被采纳:)

如果您使用的是CoCoS2D2.0,您可以使用该方法

repeat参数是选择器在初次运行后再次运行的次数。即如果repeat为10,选择器将运行11次


延迟参数决定初始延迟,因此您可以让它在选择器第一次运行之前等待更长或更短的时间。

遗憾的是,建议的解决方案不起作用。请参见编辑

我创建了一个特定的action类,并创建了一个NSMutableArray,其中填充了该类的实例,在该类的update方法中,无论何时需要安排这些操作,我都会执行以下操作:

-(void ) update:(ccTime) delta
{
timeElapsed+=delta;

for(int i=lastButtonCallIndex; i<[callsSchedulers count]; i++ )
{
    Call * buttonCall = [callsSchedulers objectAtIndex:i];
    if (buttonCall.callingTime<timeElapsed)
    {
        if(buttonCall.called==FALSE)
        {
            [buttonCall call]; //Where the call method has a reference to the button object I wanted to activate - a Call object is initialized with this reference.
            lastButtonCallIndex++;
        }
    }
    else
    {
        break;
    }
}    
-(无效)更新:(ccTime)增量
{
时间流逝+=增量;

for(int i=lastButtonCallIndex;iSorry表示不接受,但我尝试了,但没有成功..我编辑了问题并给出了解释..如果我做错了什么,将再次接受:)