(SpriteKit + Swift 2) - 当用户点击它时删除精灵

时间:2015-11-17 16:32:31

标签: ios swift2 skspritenode

我正在尝试制作一个简单的泡泡点击游戏。我在我的代码中创建了一个SKSpriteKid节点。问题是当用户点击它时我想要精灵消失。我似乎无法删除parent()节点。我该如何解决这个问题?

我创建了一个以bubble1为名的精灵。

func bubblePressed(bubble1: SKSpriteNode) {
      print("Tapped")
      bubble1.removeFromParent()
}


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

    for touch: AnyObject in touches {

        let touchLocation = touch.locationInNode(self)
        let touchedNode = self.nodeAtPoint(touchLocation)

           if (touchedNode.name == "bubble1") {
              touchedNode.removeFromParent()
              print("hit")                
           }        
    }           
}



//the node's creation.
func bubblesinView() {

    //create the sprite
    let bubble1 = SKSpriteNode(imageNamed: "bubble_green.png")

    //spawn in the X axis min is size, max is the total height minus size bubble
    let width_bubble_1 = random(min: bubble1.size.width/2, max: size.width - bubble1.size.height/2)

    //y: size.height * X, X is 0 at bottom page to max
    //spawn position, let x be random
    bubble1.position = CGPoint(x: width_bubble_1, y: size.height)

    // Add the monster to the scene
    addChild(bubble1)

    // Determine speed of the monster from start to end
    let bubblespeed = random(min: CGFloat(1.1), max: CGFloat(4.0))

    //this tell the bubble to move to the given position, changeble x must be a random value
    let moveAction = SKAction.moveTo(CGPoint(x: width_bubble_1, y: size.height * 0.1), duration: NSTimeInterval(bubblespeed))
    let actionMoveDone = SKAction.removeFromParent()
    bubble1.runAction(SKAction.sequence([moveAction, actionMoveDone]))
}

我真的想让这项工作成功。提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果要使用节点的name属性,则应将其设置为某个值。运行时无法找出变量名称作为名称。

之后的bubblesInView函数
let bubble1 = SKSpriteNode(imageNamed: "bubble_green.png")

你应该做

bubble1.name = "bubble1"

答案 1 :(得分:0)

你忘了给节点命名:

 //create the sprite
 let bubble1 = SKSpriteNode(imageNamed: "bubble_green.png")
 bubble1.name = "bubble1"