2016-02-11 4 views
0

Ищет метод для создания нового спрайта в центре экрана каждые 30 секунд. И это должно зависеть от силы тяжести.Swift 2: Создание нового спрайта каждые 30 секунд

Мне удалось создать новый спрайт, но при попытке установить affectedByGravity в true игра выйдет из строя.

«Фатальная ошибка: неожиданно нашел ноль в то время как разворачивание необязательного значения»

Это код, который я получил:

self.timer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: "spawningCars", userInfo: nil, repeats: true) 

func spawningCars() { 

    let enemyTowardsTexture = SKTexture(imageNamed: "player") 
    let enemyTowards = SKSpriteNode(texture: enemyTowardsTexture) 
    enemyTowards.position = ourCamera.position 
    enemyTowards.physicsBody!.affectedByGravity = true 
    self.addChild(enemyTowards) 

    print("spawning car right") 
    timer.invalidate() 
    resetTimer() 

} 


    func resetTimer() { 

     self.timer = NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: "spawningCars", userInfo: nil, repeats: true) 
    } 

ответ

2

Вам нужно создать тело физики для спрайта перед вызовом:

enemyTowards.physicsBody = SKPhysicsBody(texture: enemyTowardsTexture, size: enemyTowardsTexture.size()) 
Смежные вопросы