无法隐藏/取消隐藏SKSpriteNode

时间:2015-09-27 04:04:58

标签: ios swift sprite-kit

我在隐藏和显示SKSpriteNode方面遇到了麻烦。 但是,我确信使用hidden = true会隐藏可见性。我想要做的是在按下标题时显示图像按钮,并在按下标题以外的其他位置时隐藏图像按钮。我有以下示例代码。我很乐意听取您的意见。

startSprite.position = CGPoint(x: self.size.width * 0.5, y: self.size.height * 0.5+startSprite.size.height)
self.addChild(startSprite)
startSprite.zPosition = 3
startSprite.hidden = true
startSprite.name = "start"


//When the title is pressed show the startSprite
//clicking a image
if touchNode.name == "normal" {
    startSprite.hidden = false
    if touchNode.name == "start" {
    //start the game when the startSprite is pressed
    } else {
        startSprite.hidden = true
    }
}

1 个答案:

答案 0 :(得分:3)

如果我理解了您的意思,您希望在按下标题时显示startSpritenamenormal,并在其他地方隐藏startSprite标题被按下了。我建议你先给每个节点一个name,然后再添加到场景中。通过这种方式,你可以更容易地知道你触摸了哪一个。希望这会有所帮助:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {        
    for touch in touches {
        let location = touch.locationInNode(self)
        let touchNode = self.nodeAtPoint(location)

        if touchNode.name == "normal" {
            startSprite.hidden = false
        } else {
            startSprite.hidden = true
        }
    }
}