2016-04-27 8 views
1

Ich bin neu zu schnell und auf der Suche nach meinem ersten Basisspiel zu bauen. Das Spiel, das ich im Sinn habe, beinhaltet Sprites, die zufällig generiert werden und dann verschwinden, basierend auf der Zeit oder einem Klick, wenn der Klick innerhalb der zugewiesenen Zeit ist. Bis jetzt habe ich den Grundrahmen geschaffen und beschäftige mich immer noch mit Design. Mein Problem tritt auf, wo ich das Sprite scheinbar nicht zeitabhängig entfernen kann. Jede Hilfe wird geschätzt und danke im VorausFügen Sie SpriteNodes hinzu und entfernen Sie basierend auf der Zeit oder klicken Sie mit SpriteKit

Unten ist das Framework, das ich bisher aufgebaut habe.

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 */ 

    } 
} 

Antwort

1

Es verschwindet nicht, weil Ihr neues SpiteNode erstellen, sondern versuchen, die alte zu entfernen, wie dies zu tun:

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

, dass 100% funktioniert, habe nie bemerkt, dass „wir“ war immer noch da (wahrscheinlich Zeit, etwas Schlaf zu bekommen) Danke lieber Fremder! :) – NickvR

+0

Schön kann ich helfen :) – Eric