2016-05-16 2 views
0

mein Problem ist, dass jedes Mal, wenn eine neue Notiz erzeugt wird ändert sich der Name des vorherigen, so dass ich es nicht entfernen kann oder ändert seine Aktion wie Kann ich dieses Problem beheben? Mein Ziel ist es, jeden Punkt irgendwo auf dem Bildschirm zu berühren und er wird entfernt. aber momentan funktioniert es nur mit 1 Punkt, bis der nächste Punkt erzeugt wird, aber ich kann mir nur vorstellen, wie man das Schreiben einer separaten Notiz für alle 5 Punkte in einer Reihe behebt, aber das ist eher ein Kopier- und Einfüge-Code als irgendetwas anderes und ich würde dies eher vermeidenhow-to mehrere Knoten mit dem gleichen Namen mit jeder Interaktion separat mit der Umgebung haben

. enter image description here

var enemy1 = SKSpriteNode() 
var enemy2 = SKSpriteNode() 
var enemy3 = SKSpriteNode() 
var enemy4 = SKSpriteNode() 
let wate = SKAction.waitForDuration(3) 

func dot(){ 


    let SK = SKAction.runBlock{ 
    self.runAction(SKAction.repeatActionForever(
     SKAction.sequence([ 
      SKAction.runBlock{self.spawnBlueDot()}, 
      SKAction.waitForDuration(1)]))) 

    self.runAction(SKAction.repeatActionForever(
     SKAction.sequence([ 
      SKAction.runBlock{self.spawnBluelop()}, 
      SKAction.waitForDuration(1)]))) 

    self.runAction(SKAction.repeatActionForever(
     SKAction.sequence([ 
      SKAction.runBlock{self.spawnGrennDot()}, 
      SKAction.waitForDuration(1)]))) 

    self.runAction(SKAction.repeatActionForever(
     SKAction.sequence([ 
      SKAction.runBlock{self.spawnGrennlop()}, 
      SKAction.waitForDuration(1)]))) 


    } 



runAction(SKAction.sequence([wate,SK])) 






} 



func spawnBlueDot() { 
    // 2 
    enemy1 = SKSpriteNode(imageNamed: "Oval [email protected],7x") 
    // 3 
    enemy1.name = "enemy1" 
    // 4 
    enemy1.position = CGPoint(x: frame.size.width/2 - 400, y: frame.size.height) 
    // 5 
    addChild(enemy1) 
    scor += 1 
    enemy1.runAction(SKAction.moveToY(-100, duration: 4)) 
    label?.text = "\(scor)" 




} 

func spawnBluelop() { 
    // 2 
    enemy2 = SKSpriteNode(imageNamed: "[email protected],7xj") 
    // 3 
    enemy2.name = "enemy2" 
    // 4 
    enemy2.position = CGPoint(x: frame.size.width/2 - 100, y: frame.size.height/-900) 
    // 5 
    addChild(enemy2) 

    enemy2.runAction(SKAction.moveToY(2000, duration: 4)) 



} 

func spawnGrennDot() { 
    // 2 
    enemy3 = SKSpriteNode(imageNamed: "Oval [email protected],7x") 
    // 3 
    enemy3.name = "enemy3" 
    // 4 
    enemy3.position = CGPoint(x: frame.size.width/2 + 400, y: frame.size.height) 
    // 5 
    addChild(enemy3) 

    enemy3.runAction(SKAction.moveToY(-100, duration: 4)) 



} 



func spawnGrennlop() { 
    // 2 
    enemy4 = SKSpriteNode(imageNamed: "[email protected]") 
    // 3 
    enemy4.name = "enemy4" 
    // 4 
    enemy4.position = CGPoint(x: frame.size.width/2 + 100 , y: frame.size.height/-900) 
    // 5 
    addChild(enemy4) 

    enemy4.runAction(SKAction.moveToY(2000, duration: 4)) 



} 
override func didMoveToView(view: SKView) { 

    dot() 

} 
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 


    for touch in touches{ 

     let location = touch.locationInNode(self) 
     if pause!.containsPoint(location){ 
      print("help") 


      enemy2.removeAllActions() 
      enemy3.removeAllActions() 
      enemy3.removeAllActions() 
      enemy4.removeAllActions() 

      pause?.runAction(SKAction.sequence([ac,ac1])) 


     } 


    } 




    for touch in touches{ 

     let location = touch.locationInNode(self) 
     if enemy1.containsPoint(location){ 
      print("help") 


      enemy1.removeFromParent() 


     } 
    } 







    } 
+0

Versuchen Sie beschreibender zu sein ... "Reagieren Sie nicht" auf was eigentlich? – Whirlwind

+0

Entschuldigung dafür habe ich meinen Beitrag bearbeitet –

Antwort

1

Verwenden

let touchedNode = nodeAtPoint(location)

statt

if enemy1.containsPoint(location)

Dies wird eine SKNode zurück, die Sie dann usw. entfernen kann, ohne für jeden einzelnen Gegner zu überprüfen zu haben.