Ios 轻触精灵时发生的其他动作;如何预防
我正在构建一个主要通过点击屏幕(任何地方)来玩的游戏。我现在添加了一个设置按钮,当点击时,会打开一个设置窗口 问题是,当点击设置按钮时,游戏中也会发生交互。有没有办法防止这种情况发生 “我的设置”屏幕通过布尔表达式与设置功能和覆盖功能配合使用 游戏通过添加到didMoveToView视图中的UITapGestureRecognitor进行Ios 轻触精灵时发生的其他动作;如何预防,ios,swift,button,sprite-kit,Ios,Swift,Button,Sprite Kit,我正在构建一个主要通过点击屏幕(任何地方)来玩的游戏。我现在添加了一个设置按钮,当点击时,会打开一个设置窗口 问题是,当点击设置按钮时,游戏中也会发生交互。有没有办法防止这种情况发生 “我的设置”屏幕通过布尔表达式与设置功能和覆盖功能配合使用 游戏通过添加到didMoveToView视图中的UITapGestureRecognitor进行 /* Game Interaction & Playability */ override func didMoveToView(view: SKVi
/* 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()
}
}
}
}
}
/*游戏交互和可玩性*/
覆盖func didMoveToView(视图:SKView){
让点击:UITapGestureRecognizer=UITapGestureRecognizer(目标:自我,操作:选择器(“点击:”)
view.AddGestureRecognitor(点击)
}
/*设置按钮交互*/
覆盖功能触摸开始(触摸:设置,withEvent事件:UIEvent?){
接触{
let positionInScene=触摸位置InNode(自身)
让touchedNode=self.nodeAtPoint(positionInScene)
如果let name=touchedNode.name{
如果名称==“设置”{
如果设置sopen==false{
设置()
}否则{
设置()
}
}
}
}
}
好吧,这里有几个手势识别器。实际上,您不需要向视图中添加识别器,就可以知道是否有人在点击它。这已经为您处理过了(因此,touchsbegind
在不添加其他识别器的情况下工作的原因)
我想说的是,移除额外的识别器,并将
点击的代码移动到您的触摸开始
,我唯一能想到的是创建一个较小的视图,将其放置在屏幕顶部的主视图上方,并将SKSpriteNode按钮连接到它。我可以想象,既然按钮会是另一个视图的一部分,我就不会得到相互冲突的点击。但是在我完成这个改变之前,如果有人有一个更简单的解决方案,我会很感激的。它工作得很完美,在触摸屏上玩了一点,开始了,但成功了。谢谢