Cocos2d iphone 在随机时间安排精灵Cocos2d 3.0
我想在游戏中随机安排这两个精灵,然后不断更改时间,使精灵随机出现 我相信这样的事情是必须做的,但它没有起作用Cocos2d iphone 在随机时间安排精灵Cocos2d 3.0,cocos2d-iphone,sprite,arc4random,Cocos2d Iphone,Sprite,Arc4random,我想在游戏中随机安排这两个精灵,然后不断更改时间,使精灵随机出现 我相信这样的事情是必须做的,但它没有起作用 int minDuration = 5.0; int maxDuration = 30.0; int rangeDuration = maxDuration - minDuration; int randomDuration = (arc4random() % rangeDuration) + minDuration; if (randomDuration == randomDurat
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];
}
有什么帮助或建议吗?谢谢我想先试试这样的方法。从你的问题很难判断你是想让这两个精灵同时出现,还是想要两个单独的时间表。无论哪种方式,都可以修改此代码以完成工作
-(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];
}
randomDuration进入interval,在您调用的选择器中再次运行上面的代码(再次使用randomDuration作为interval)