2016-04-27 63 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