在两个位置之间随机生成一个 SKSpriteNode

Spawn a SKSpriteNode between two positions randomly

我正在尝试研究如何在 Swift 中的两个位置(位于屏幕上)之间随机生成 SKSpriteNode

这是我的想法,但它确实会在屏幕尺寸之外生成节点,尽管我在屏幕边界内定义了两个点!

/* Spawning Values */
var MinSpawnValue = self.size.width / 8
var MaxSpawnValue = self.size.width - self.size.width / 8
var SpawnPosition = UInt32(MaxSpawnValue - MinSpawnValue)
/* Node Positioning */
Node.position = CGPointMake(CGFloat(arc4random_uniform(SpawnPosition)),CGRectGetMidY(self.frame))

您只需将您的随机值添加到 MinSpawnValue。这可能需要对类型进行一些调整:

Node.position = CGPointMake(CGFloat(arc4random_uniform(SpawnPosition)) + MinSpawnValue,CGRectGetMidY(self.frame))

我发现使用实际数字更容易思考此类问题。例如,如果 MinSpawnValue1000MaxSpawnValue1004,那么 SpawnPosition 将是 4,您将生成一个范围内的数字0...3。通过将该数字添加到 MinSpawnValue,您将获得 1000...1003.

范围内的数字