对于覆盖场景和节点子类中的touchesBegan等而不是使用gestureRecognizers的游戏,是否有最佳做法?
我知道Apple的模板中包含override func touchesXXXX
个方法,这样可以进行更多控制(除非使用自定义识别器)。但是很多教程似乎都使用了GestureRecognizer方法。
这主要是教程使事情变得更容易,还是更常见的是使用GestureRecognizer路由来消除一些复杂性?我知道这可以归结为开发者的偏好,但我正在寻找一个最佳实践' - 在制作游戏时,Apple实际上是否建议采用另一种方式?
答案 0 :(得分:1)
如果你想做的只是回应屏幕上的触摸,请使用3标准'触摸'方法
如果您需要响应不同的滑动,平移,捏等,那么您将需要手势识别器。
答案 1 :(得分:1)
我也想知道同样的事情 - 当你将SceneKit和SpriteKit混合在一起时,它会变得更加有趣。我还没有看到任何官方文件暗示其中一个,因为它们实际上是针对略有不同的东西。您会发现Xcode游戏模板使用其中一个(或者两个,在跨平台spritekit游戏的情况下)。
我认为大多数教程和博客使用GestureRecognizer方法的原因是它为您完成了大量工作,但是当您遇到更复杂的用例时,您可能会发现需要手动处理这些操作。我自己处理手势(这是一些漂浮在互联网上的例子),因为我必须为一个特定的项目。
我还在一些博客上看过,有时使用触摸方法和GestureRecognizers一起可能会给出不正确的结果(特别是缺少触摸),但这可能是陈旧的信息 - 如果你确定的话,它值得检查同时使用两者。
所以为了回答这个问题,我不相信有一个正式的最佳实践,因为这两种方法都是有效的和现有的方法。我会说使用你认为更合适的代码并使代码尽可能简单和干净。