如何暂停touchesBegan并仅使用touchesMoved反之亦然?

时间:2018-05-25 20:12:57

标签: swift sprite-kit touchesbegan touchesmoved

目前我正在快速编写游戏,Xcode和我希望用户能够选择他们想要的控件(滑动或点按)。截至目前,我已经能够在主游戏场景中制作我的SKNode幻灯片,以及响应点击。但是我发现滑动时SKNode会不断震动(因为touchesBegan功能认为我正在点击屏幕)。

如果有人知道暂停其中一项功能的最佳方式,而另一项保持有效,请告知我们:)

例如: 用户选择通过滑动来玩游戏,我想暂停touchesBegan功能,但保持touchesMoved处于活动状态。

1 个答案:

答案 0 :(得分:0)

有一种委托方法可以检查一个手势是否失败,如果是,则识别另一个手势。例如,在我的项目中,我有两个手势,点按一次,然后点击两次,我使用了:

 public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    if otherGestureRecognizer.numberOfTouches == 2 {
        return true
    }
    return false
}

有关更多信息,请查看Apple的参考: https://developer.apple.com/documentation/uikit/uigesturerecognizer/1620006-shouldrequirefailure