在SpriteKit中创建随机数

时间:2016-06-07 20:46:02

标签: swift random sprite-kit int

我试图制作一个以随机角度发射射弹的游戏。 为此,我需要能够生成两个随机的Int。我查了一些教程并想出了这个:

var random = CGFloat(Int(arc4random()) % 1500)
var random2 = CGFloat(Int(arc4random()) % -300)
self.addChild(bullet)
bullet.physicsBody!.velocity = CGVectorMake((random2), (random))

它工作了一段时间但现在只是崩溃了。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

我发现我使用最多的是arc4random_uniform(upperBound),它返回从0到upperBound -1的随机Int。

let random = arc4random_uniform(1500)
let random2 = arc4random_uniform(300) * -1

//pick a number between 1 and 10
let pick = arc4random_uniform(10)+1

arc4函数的下限:arc4random man page

GameplayKit有一个包含arc4函数的好类:GameplayKit Randomness

和一个方便的参考:Random Hipster

答案 1 :(得分:1)

我不太了解你的问题,但我认为它可能有用:

func getRandomPointFromCircle(radius:Float, center:CGPoint) -> CGPoint {
     let randomAngle = Float(arc4random())/Float(UInt32.max-1) * Float(M_PI) * 2.0
     // polar => cartesian
     let x = radius * cosf(theta)
     let y = radius * sinf(theta)
     return CGPointMake(CGFloat(x)+center.x,CGFloat(y)+center.y)
}