2016-05-16 51 views
0

我的问题是,每次产生一个新的音符它改变了前一个的名称,所以我不能删除它或改变它的行动如何我可以解决这个问题吗?我的目标是触摸屏幕上的每个点,并将其删除。然而目前它只能用1点工作,直到产生下一个点,但我只能想到一种方法来修复这个写一个单独的说明,每行5个点的单独注释,但这是更复制和粘贴代码,然后其他任何和我宁愿避免这个如何具有多个节点具有相同的名称与每个分别与环境互动

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

尝试更具描述性......“不要反应”什么? – Whirlwind

+0

对不起,我已编辑我的帖子 –

回答

1

使用,而不是

let touchedNode = nodeAtPoint(location)

if enemy1.containsPoint(location)

这将返回一个SKNode然后你就可以删除等,而不必单独检查每个敌人。

相关问题