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

时间:2015-08-02 11:54:56

标签: swift random skspritenode cgpoint

我正在尝试研究如何在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))

1 个答案:

答案 0 :(得分:2)

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

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

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