我正在制作一个游戏,我需要“皱眉”在屏幕上的随机位置生成然后掉落。
我让它生成,但它只在一个部分中生成,并且不会在其他任何地方生成:
}
func random() -> CGFloat {
return CGFloat(Float(arc4random()) / 0xFFFFFFFFFFFFF)
}
func random(#min: CGFloat, max: CGFloat) -> CGFloat {
return random() * (max - min) + min
}
func addFrowny() {
let frowny = SKSpriteNode(imageNamed: "Frowny")
let actualX = random(min: frowny.size.width/2, max: size.width + frowny.size.height/2)
frowny.position = CGPoint(x: actualX, y: size.width - frowny.size.height/2)
addChild(frowny)
let actualDuration = random(min: CGFloat(2.0), max: CGFloat(4.0))
let actionMove = SKAction.moveTo(CGPoint(x: actualX, y: +frowny.size.height/2), duration: NSTimeInterval(actualDuration))
let actionMoveDone = SKAction.removeFromParent()
frowny.runAction(SKAction.sequence([actionMove, actionMoveDone]))
最佳答案
您的random
方法每次都不会返回0到1之间的值,而是返回类似0.00000001的值。请改用此随机函数:
func random() -> CGFloat {
return CGFloat(Double(arc4random()) / Double(UInt32.max))
}
(除数太多,当它令人困惑时不应该使用十六进制)
关于swift - 在随机位置生成 SKSprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32158476/