2015-09-05 24 views
0

我有一個遊戲,當你死了,你點擊和遊戲應該重新啓動自己,但每當我點擊重新啓動它給我這個(見上文)錯誤。在此先感謝(:Swift SpriteKit:線程1:addChild上的EXC_BAD_ACCESS?我究竟做錯了什麼?

這裏是我的代碼:

class MCTFruitGen: SKSpriteNode { 
    var generationTimer: NSTimer! 
    var fruits = [MCTFruit]() 
    var fruitTracker = [MCTFruit]() 

    func startGeneratingFruitEvery(seconds: NSTimeInterval) { 
     generationTimer = NSTimer.scheduledTimerWithTimeInterval(seconds, target: self, selector: "generateFruit", userInfo: nil, repeats: true) 
    } 

    func stopGenerating() { 
     generationTimer?.invalidate() 
    } 

    func generateFruit() { 
     var scale: CGFloat 
     let rand = arc4random_uniform(2) 
     if rand == 0 { 
      scale = -1.0 
     } else { 
      scale = 1.0 
     } 

     let strawberry = MCTFruit() 
     strawberry.position.x = size.width/2 + strawberry.size.width/2 
     strawberry.position.y = scale * (NMCGroundHeight/160 + strawberry.size.height) 

     self.fruits.append(strawberry) 
     fruitTracker.append(fruits) 
     addChild(strawberry) // line that gives me the error 
    } 

    func stopFruit() { 
     stopGenerating() 
     for fruit in fruits { 
      fruit.stopFruitMoving() 
     } 
    } 
} 
+0

你能告訴我們。代碼中您註冊點擊的部分以及您在那裏進行的任何調用 –

回答

0

嘗試使用SKAction代替NSTimer產生果實或SpriteKit任何定時事件例如

class MCTFruitGen: SKSpriteNode { 
    var fruits = [MCTFruit]() 
    var fruitTracker = [MCTFruit]() 

    func startGeneratingFruitEvery(seconds: NSTimeInterval) { 

     let callGenerateAction = SKAction.runBlock {() -> Void in 
      self.generateFruit() 
     } 

     let waitOneSecond = SKAction.waitForDuration(seconds) 

     let sequenceAction = SKAction.sequence([callGenerateAction, waitOneSecond]) 

     let fruitGeneratorAction = SKAction.repeatActionForever(sequenceAction) 

     self.runAction(fruitGeneratorAction, withKey: "fruitGenerator") 
    } 

    func stopGenerating() { 
     self.removeActionForKey("fruitGenerator"); 
    } 

    func generateFruit() { 
     // Your Code 
    } 

    func stopFruit() { 
     stopGenerating() 
     // Your Code 
    } 
} 
+0

它帶走了我的錯誤,但是當我點擊重新開始時,遊戲仍然保持靜止 –

+0

妳的意思是仍然保持靜態? – rakeshbs

+0

像它沒有任何動作。我的精靈正在移動,但是地面不會移動,我的障礙不會產生。 –