SpriteKit / Scenekit TouchesBegan或GestureRecognizer

时间:2017-08-30 06:27:16

标签: sprite-kit scenekit

对于覆盖场景和节点子类中的touchesBegan等而不是使用gestureRecognizers的游戏,是否有最佳做法?

我知道Apple的模板中包含override func touchesXXXX个方法,这样可以进行更多控制(除非使用自定义识别器)。但是很多教程似乎都使用了GestureRecognizer方法。

这主要是教程使事情变得更容易,还是更常见的是使用GestureRecognizer路由来消除一些复杂性?我知道这可以归结为开发者的偏好,但我正在寻找一个最佳实践' - 在制作游戏时,Apple实际上是否建议采用另一种方式?

2 个答案:

答案 0 :(得分:1)

如果你想做的只是回应屏幕上的触摸,请使用3标准'触摸'方法

如果您需要响应不同的滑动,平移,捏等,那么您将需要手势识别器。

答案 1 :(得分:1)

我也想知道同样的事情 - 当你将SceneKit和SpriteKit混合在一起时,它会变得更加有趣。我还没有看到任何官方文件暗示其中一个,因为它们实际上是针对略有不同的东西。您会发现Xcode游戏模板使用其中一个(或者两个,在跨平台spritekit游戏的情况下)。

我认为大多数教程和博客使用GestureRecognizer方法的原因是它为您完成了大量工作,但是当您遇到更复杂的用例时,您可能会发现需要手动处理这些操作。我自己处理手势(这是一些漂浮在互联网上的例子),因为我必须为一个特定的项目。

我还在一些博客上看过,有时使用触摸方法和GestureRecognizers一起可能会给出不正确的结果(特别是缺少触摸),但这可能是陈旧的信息 - 如果你确定的话,它值得检查同时使用两者。

所以为了回答这个问题,我不相信有一个正式的最佳实践,因为这两种方法都是有效的和现有的方法。我会说使用你认为更合适的代码并使代码尽可能简单和干净。