我正在尝试研究如何在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))
答案 0 :(得分:2)
您只需将随机值添加到MinSpawnValue
即可。这可能需要对类型进行一些调整:
Node.position = CGPointMake(CGFloat(arc4random_uniform(SpawnPosition)) + MinSpawnValue,CGRectGetMidY(self.frame))
我发现通过使用实际数字更容易思考这样的事情。例如,如果MinSpawnValue
为1000
且MaxSpawnValue
为1004
,那么SpawnPosition
将为4
,您将在该范围内生成一个数字0...3
。通过将该数字添加到MinSpawnValue
,您将获得1000...1003
范围内的数字。