2016-02-11 102 views
0

尋找一種方法,每隔30秒在屏幕中心產生一個新的精靈。它必須受到重力的影響。斯威夫特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())