我注意到touchesEnded并不总是通过多点触控传递给SKScene。根据移除手指等的速度,我会永远错过一些touchesEnded。 touchesCancelled已实现,我添加了一个自定义UIView并放在屏幕的左侧 - 没有问题。我制作了一个自定义的SKView并捕获了事件 - 再次没问题。
很明显,SKScene没有得到所有的触动,而是嵌入了SKView,但为什么呢?
(顺便说一句,我完全没有任何节点地运行SKScene)
编辑:
进一步的调查显示我可以让SKScene完全失去联系:
我在显示器上放了3个手指,然后一次取出一个,直到只有一根手指接触。我移动手指 - >只有SKView收到移动事件,SKScene没有。它也没有收到touchesEnded。
经过一些实验,我可以说当一个touchesBegan在一次通话中接到超过1次触摸时就会发生这种情况(例如你同时按下两根手指)。然后这两个接触被纠缠在一起,所以只有其中一个发送事件。
这似乎是SKScene中的一个错误。我正在iPhone 5上进行测试。它会
答案 0 :(得分:2)
可能您正在使用一些gestureRecognisers? 它们具有 cancelsTouchesInView 属性,其默认值为 YES 。 将其更改为否解决了我的问题。