在随机时间Cocos2d 3.0安排精灵

时间:2014-05-13 05:33:30

标签: cocos2d-iphone sprite arc4random

我想在游戏过程中随机安排这两个精灵,然后不断改变时间,以便精灵随机出现

我相信这样的事情必须要做,但是没有效果

int minDuration = 5.0;
int maxDuration = 30.0;
int rangeDuration = maxDuration - minDuration;
int randomDuration = (arc4random() % rangeDuration) + minDuration;

if (randomDuration == randomDuration) {
[self schedule:@selector(addshieldICON:) interval:10];
[self schedule:@selector(addspeedICON:) interval:10];
}

任何帮助或建议?谢谢

1 个答案:

答案 0 :(得分:1)

我会尝试这样的事情开始。很难从你的问题中判断出你是想要同时出现这两个精灵,还是想要两个单独的时间表。无论哪种方式,您都可以修改此代码以完成工作。

-(void)scheduleWithRandomInterval {
    int minDuration = 5.0;
    int maxDuration = 30.0;
    int rangeDuration = maxDuration - minDuration;
    int randomDuration = (arc4random() % rangeDuration) + minDuration;

    [self scheduleOnce:@selector(showIcons) delay:randomDuration];
}

-(void)showIcons {
    [self addshieldICON];
    [self addspeedICON];
    [self scheduleWithRandomInterval];
}

但请注意:我在v2.1中添加了一个来自自己的选择器的新调度程序时遇到了一些问题。如果您注意到scheduleWithRandomInterval未被多次调用,那么您可能需要做一些黑客工作来解决它。在过去,我已经这样做了。

而不是

    [self scheduleWithRandomInterval];

我会用

    [self delayedScheduleWithRandomInterval];

使用新函数来处理双延迟

-(void)delayedScheduleWithRandomInterval {
    [self scheduleOnce:@selector(scheduleWithRandomInterval) 0.01];
}