我正在尝试研究如何在 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))
我发现使用实际数字更容易思考此类问题。例如,如果 MinSpawnValue
为 1000
且 MaxSpawnValue
为 1004
,则 SpawnPosition
将为 4
,您将生成一个 0...3
范围内的数字。通过将该数字添加到 MinSpawnValue
,您将获得 1000...1003
范围内的数字。
关于swift - 在两个位置之间随机生成一个 SKSpriteNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31771661/