点击精灵时发生的其他动作;如何预防

时间:2016-02-25 23:24:12

标签: ios swift button sprite-kit

我正在构建一个主要通过点击屏幕(任何地方)播放的游戏。我当前添加了一个设置按钮,在点按时会打开一个设置窗口。

问题是,当点击设置按钮时,游戏中也会发生交互。有什么办法可以防止这种情况发生吗?

我的设置屏幕与设置功能配合使用,覆盖触摸通过布尔表达式开始运行。

游戏是通过添加到didMoveToView视图中的UITapGestureRecognizer来播放的。

/* Game Interaction & Playability */
override func didMoveToView(view: SKView) {
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("tapped:"))
    view.addGestureRecognizer(tap)
}

/* Settings Button Interaction */
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch in touches {
        let positionInScene = touch.locationInNode(self)
        let touchedNode = self.nodeAtPoint(positionInScene)

        if let name = touchedNode.name {
            if name == "Settings" {
                if settingsOpen == false {
                    settings()
                } else {
                    settings()
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

嗯,你有几个手势识别器在这里工作。您实际上不需要在视图中添加识别器以了解是否有人正在点击它。这已经为你处理了(因此touchesBegan无需添加其他识别器即可工作。)

我想删除额外的识别器,并将tapped:的代码移到touchesBegan