2016-04-27 41 views
1

我是新來swift和期待建立我的第一個基本遊戲。我想到的遊戲包括隨機生成的精靈,然後基於時間或點擊消失,如果點擊是在分配的時間內。到目前爲止,我已經創建了基本框架,並且仍然在搞設計。我的問題出現在我無法基於時間去除精靈的地方(它生成的很好)。任何幫助表示感謝,並提前感謝添加SpriteNodes並刪除基於時間或點擊使用SpriteKit

以下是我迄今爲止建立的框架。

import SpriteKit 

var one = SKSpriteNode() 

class GameScene: SKScene { 
    override func didMoveToView(view: SKView) { 
     /* Setup your scene here */  

     let myFunction = SKAction.runBlock({()in self.addOne()}) 
     let wait = SKAction.waitForDuration(5) 
     let remove = SKAction.runBlock({() in self.removeOne()}) 

     self.runAction(SKAction.sequence([myFunction, wait, remove])) 


    } 

    func addOne() { 

     let oneTexture = SKTexture(imageNamed: "blue button 10.png") 

     let one = SKSpriteNode(texture: oneTexture) 

     one.position = CGPoint(x: CGRectGetMidX(self.frame) - 100, y: CGRectGetMidY(self.frame) + 250) 
     one.zPosition = 1 

     self.addChild(one) 


    } 

    func removeOne() { 

     one.removeFromParent() 

    } 

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
     /* Called when a touch begins */ 

    } 

    override func update(currentTime: CFTimeInterval) { 
     /* Called before each frame is rendered */ 

    } 
} 

回答

1

它不會消失,因爲你創建一個新的SpiteNode,但嘗試刪除舊的,像這樣做:

var one : SKSpriteNode! //instead of creating it without data, just define the type(not necessary, but I would do it) 

    class GameScene: SKScene { 
     override func didMoveToView(view: SKView) { 
      /* Setup your scene here */ 

      let myFunction = SKAction.runBlock({()in self.addOne()}) 
      let wait = SKAction.waitForDuration(5) 
      let remove = SKAction.runBlock({() in self.removeOne()}) 

      self.runAction(SKAction.sequence([myFunction, wait, remove])) 


     } 

     func addOne() { 

      let oneTexture = SKTexture(imageNamed: "blue button 10.png") 

      one = SKSpriteNode(texture: oneTexture) //removed the let, so you dont create a new "one" 

      one.position = CGPoint(x: CGRectGetMidX(self.frame) - 100, y: CGRectGetMidY(self.frame) + 250) 
      one.zPosition = 1 

      self.addChild(one) 


     } 

     func removeOne() { 

      one.removeFromParent() 

     } 
} 
+0

這一工程100%,從來沒有意識到「讓」了仍然有(可能有時間去睡覺) 感謝親切的陌生人:) :) – NickvR

+0

不錯,我可以幫助:) – Eric