使用 Swift/SKScene 检测触摸

Posted

技术标签:

【中文标题】使用 Swift/SKScene 检测触摸【英文标题】:Detecting a touch with Swift/SKScene 【发布时间】:2017-06-06 21:05:15 【问题描述】:

我试图弄清楚如何使用 SKScene 的子类检测屏幕上任何位置的触摸,以便我可以转换。我该怎么做?

谢谢

【问题讨论】:

使用 touchesBegan(_ touches: Set, with event: UIEvent?) 【参考方案1】:
       override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 

      let location = touch.location(in: self)


      print(location)

     //if your touch location = a button or anything it transitions to a new scene 
       if location = //Startbutton 
       let transition = SKTransition.reveal(with: .down, duration: 0.75)
     let gameScene = GameScene(size: size)
     gameScene.scaleMode = scaleMode
     view?.presentScene(gameScene, transition: transition)

打印用户触摸位置...希望对 m8 有所帮助

【讨论】:

你需要小心你的答案,它不会影响场景中任何将isUserInteractionEnabled 设置为true 的节点。这些节点的触摸事件将被调用而不是这个。 @Knight0fDragon 你是怎么处理的?使用 nodesAt:(Point:) 然后遍历返回的数组以获得 SKScene? @SteveIves 老实说,我会使用点击手势或覆盖节点,但如果无法触摸其他节点,我会使用这种方法,因为它很简单

以上是关于使用 Swift/SKScene 检测触摸的主要内容,如果未能解决你的问题,请参考以下文章

Swift SKScene 在 Objective-C 项目中显示为空白

使用 UIButton 进行触摸检测

没有事件处理的触摸检测

使用 Javascript 检测触摸屏设备

如何使用 Javascript 检测触摸悬停?

使用 JavaScript 检测“触摸屏”设备的最佳方法是啥?