我对 Cocoa 很陌生,但我正在尝试将一个简单的反应游戏放在一起。因此我需要随机生成 NSTimer 的时间间隔。目前我已经尝试了下面的代码。
int randomNumber = rand() %5;
changeColor = [NSTimer scheduledTimerWithTimeInterval:(randomNumber) target:self selector:@selector(changeBackground) userInfo:nil repeats:YES];
我对 Cocoa 很陌生,但我正在尝试将一个简单的反应游戏放在一起。因此我需要随机生成 NSTimer 的时间间隔。目前我已经尝试了下面的代码。
int randomNumber = rand() %5;
changeColor = [NSTimer scheduledTimerWithTimeInterval:(randomNumber) target:self selector:@selector(changeBackground) userInfo:nil repeats:YES];
如果您希望分辨率小于 1 秒,则应从随机数创建一个 double。或许是这样的:
int sourceRandom100x = rand() % 500; // i.e. 435
double randomInterval = sourceRandom100x/100.0 // 4.35
[NSTimer scheduledTimerWithTimeInterval:(randomInterval) ...
但是该技术将在每次迭代中使用相同的间隔。如果您每次都想要一个新的随机间隔,请让计时器不重复,并在内部changeBackground
设置另一个(通过委托给更合适命名的新方法,例如-(void) setupRandomBackgroundChangeTimerIfNecessary