Случайно создать SKNode в позиции x?

У меня есть игра, и я не могу заставить узел случайным образом появляться в позиции x, он будет появляться случайным образом, но часто выходит за пределы экрана, и тогда игра бесполезна, и ее нужно перезапустить:

func addEnemy () {
    //enemy
    let minValue = self.size.width / 8;
    let maxValue = self.size.width-20;
    let spawnPoint = UInt32(maxValue - minValue);

    Enemy = SKSpriteNode(imageNamed: "Enemy")
    Enemy.size = CGSize(width: 150, height: 200)

    Enemy.position = CGPoint(x: CGFloat(arc4random_uniform(spawnPoint)), y: self.size.height)
    self.addChild(Enemy)
}

person Tye Howatt    schedule 29.10.2015    source источник


Ответы (1)


let min: CGFloat = 15.0
let max: CGFloat = 200.0
let randomCGFloatBetweenMinAndMax = CGFloat(rand())/CGFloat(RAND_MAX)*(max-min)+min

или если вы предпочитаете

let randomCGFloatBetweenMinAndMax2 = CGFloat(arc4random_uniform(UInt32(max-min)) + UInt32(min))
person user3441734    schedule 29.10.2015
comment
большое спасибо! мне пришлось отредактировать его на min = self.size.width / 15.0 и max = self.size.width - 200 - person Tye Howatt; 29.10.2015