在随机位置产生SKSprite

时间:2015-08-22 16:44:21

标签: swift sprite-kit skspritenode

我正在制作一个游戏,我需要“皱眉”在屏幕上的随机位置产生然后通过。

我有它产卵但它只在一个部分产生,它不会在其他任何地方产卵:

}

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]))

1 个答案:

答案 0 :(得分:0)

您的random方法不会返回0到1之间的值,而是每次返回0.00000001之类的值。请改用此随机函数:

func random() -> CGFloat {
    return CGFloat(Double(arc4random()) / Double(UInt32.max))
}

(你分得太多了,当混淆时不应该使用十六进制)