Swift 在两个位置之间随机生成一个SKSpriteNode
我正在努力研究如何在Swift中在两个位置(位于屏幕上)之间随机生成一个Swift 在两个位置之间随机生成一个SKSpriteNode,swift,random,skspritenode,cgpoint,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
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
和maxsawnvalue
是1004
,那么SpawnPosition
将是4
,您将生成一个范围0…3
的数字。通过将该数字添加到MinSpawnValue
,您将得到一个范围为1000…1003
的数字,变量名实际上应该以小写字母开头。请注意,上面突出显示的语法很混乱,将变量名显示为蓝色,因为它认为它们是类名。谢谢!回答得很好,速度也很快!不客气!您的问题是一个关于堆栈溢出的完美问题的示例。它说明了正在发生的事情,您希望发生的事情,包括显示努力的相关代码,有相关的标签,以及明确说明的标题。就是这样做的!要是能像你一样清楚地回答更多的问题就好了。