0

私は Cocoa の初心者ですが、簡単なリアクション ゲームを組み立てようとしています。したがって、NSTimer の時間間隔をランダムに生成する必要があります。現在、私は以下のコードを試しました。

int randomNumber = rand() %5;

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

1 に答える 1

2

1 秒より細かい解像度が必要な場合は、乱数から double を作成する必要があります。おそらく次のようになります。

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

[NSTimer scheduledTimerWithTimeInterval:(randomInterval) ...

ただし、この手法では、反復ごとに同じ間隔が使用されます。毎回新たにランダムな間隔が必要な場合は、タイマーを繰り返さないようにし、内部changeBackgroundで別のタイマーをセットアップします(次のような、より適切な名前の新しいメソッドへの委譲を介して)-(void) setupRandomBackgroundChangeTimerIfNecessary

于 2012-07-08T18:26:00.933 に答える