2014-05-13 34 views
1

我想在遊戲過程中安排在隨機時間這兩個精靈,然後不斷變化的時間,所以精靈隨機出現附表雪碧通過隨機的時間了cocos2d 3.0

我相信,這樣的事情有許多工作要做,但它沒有工作

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]; 
} 

任何幫助或建議?謝謝

+0

randomDuration進入區間,並在選擇您所呼叫再次運行上面的代碼(再次使用randomDuration作爲間隔) – LearnCocos2D

回答

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]; 
}