SKAction:如何在节点生成中生成随机延迟

Raw*_*ean 1 random ios sprite-kit skaction sknode

我使用以下代码定期生成SKNodes.有没有办法使这些SKNode的生成周期随机.具体来说,如何使下面的代码中的"delayFish"成为一个随机延迟的动作?

[self removeActionForKey:@"fishSpawn"];
SKAction* spawnFish = [SKAction performSelector:@selector(spawnLittleFishes) onTarget:self];
SKAction* delayFish = [SKAction waitForDuration:3.0/_moving.speed];
SKAction* spawnThenDelayFish = [SKAction sequence:@[spawnFish, delayFish]];
SKAction* spawnThenDelayFishForever = [SKAction repeatActionForever:spawnThenDelayFish];
[self runAction:spawnThenDelayFishForever withKey:@"fishSpawn"];
Run Code Online (Sandbox Code Playgroud)

0x1*_*41E 6

ObjC:

首先设定平均延迟和范围......

#define kAverageDelay    2.0
#define kDelayRange      1.0     // vary by plus or minus 0.5 seconds
Run Code Online (Sandbox Code Playgroud)

然后将你的delayFish动作更改为...

SKAction* delayFish = [SKAction waitForDuration:kAverageDelay withRange:kDelayRange];
Run Code Online (Sandbox Code Playgroud)

迅速:

首先设定平均延迟和范围......

let averageDelay:TimeInterval = 2.0
let delayRange:TimeInterval = 1.0     // vary by plus or minus 0.5 seconds
Run Code Online (Sandbox Code Playgroud)

然后将你的delayFish动作更改为...

let delayFish = SKAction.wait(forDuration:averageDelay, withRange:delayRange)
Run Code Online (Sandbox Code Playgroud)