2012-07-08 110 views
0

我對Cocoa來說很新,但我試圖將一個簡單的反應遊戲放在一起。因此我需要隨機生成NSTimer的時間間隔。目前我已經嘗試了下面的代碼。在Cocoa中生成一個隨機時間間隔

int randomNumber = rand() %5; 

changeColor = [NSTimer scheduledTimerWithTimeInterval:(randomNumber) target:self selector:@selector(changeBackground) userInfo:nil repeats:YES]; 
+1

不工作的代碼是什麼?真正的問題是什麼? – 2012-07-08 18:19:38

+0

你的結果是什麼?你想要發生什麼?你需要每個間隔是新鮮的隨機,還是可以在第一個隨機間隔重複? – 2012-07-08 18:19:40

回答

2

如果你想要比1秒更精細的分辨率,你應該從隨機數中創建一個double。也許是這樣的:

int sourceRandom100x = rand() % 500; // i.e. 435 
double randomInterval = sourceRandom100x/100.0 // 4.35 

[NSTimer scheduledTimerWithTimeInterval:(randomInterval) ... 

但是,該技術將爲每次迭代使用相同的時間間隔。如果你想要一個新鮮隨機間隔每一次,使計時器重複了,裏面changeBackground,設置另一個(通過委託到一個更適當命名的新方法,如-(void) setupRandomBackgroundChangeTimerIfNecessary