2016-08-26 2 views
-1

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

Здесь я хочу, чтобы координата x была случайной.

func createmonsters() 
    { 
     randomno = Int(arc4random_uniform(4) + 1) \\creating a random number 
     monster=SKSpriteNode(imageNamed: "monster") 
     monster.size=CGSize(width: 60, height: 70) 
     monster.position = CGPoint(x :self.frame.width/2, y:self.frame.height) 
     self.addChild(monster) 
     monster.physicsBody?.dynamic = true 

     monster.runAction(moveandremove) 
    } 

ответ

3

Причина вы получаете ошибку о randomno в monster.position.x потому, что он ожидает CGFloat не int.

let randomno = CGFloat(arc4random_uniform(4) + 1) 
    monster.position = CGPointMake(randomno, 100) 

Просто FYI, переменная randomno будет только вернуть число 4, 3, 2 & 1. Вы можете сделать это число больше, если вы заинтересованы в большем x положении , возможно self.frame.width.

+0

функ createmonsters() { пусть randomno = CGFloat (arc4random_uniform (180) + 1) monster.position = CGPointMake (randomno, 100) monster.size = CGSize (ширина: 60, высота: 70) monster.physicsBody? .dynamic = истинный self.addChild (монстр) \\ дает ошибку здесь monster.runAction (moveandremove) } – user6762165

+0

у вас есть runAction 'moveandremove' звучит, как вы делаете, и что это почему вы получаете ошибку. Удалите эту строку, и ошибка исчезнет. –

+0

да, у меня есть ... и он работал b4. Я поставил случайное число и дал self.frame.width/2 как координату x. – user6762165

Смежные вопросы