我正在构建一个主要通过点击屏幕(任何地方)播放的游戏。我当前添加了一个设置按钮,在点按时会打开一个设置窗口。
问题是,当点击设置按钮时,游戏中也会发生交互。有什么办法可以防止这种情况发生吗?
我的设置屏幕与设置功能配合使用,覆盖触摸通过布尔表达式开始运行。
游戏是通过添加到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()
}
}
}
}
}
答案 0 :(得分:0)
嗯,你有几个手势识别器在这里工作。您实际上不需要在视图中添加识别器以了解是否有人正在点击它。这已经为你处理了(因此touchesBegan
无需添加其他识别器即可工作。)
我想删除额外的识别器,并将tapped:
的代码移到touchesBegan
。