我注意到,touchesEnded并不总是以多点触摸方式传递给SKScene。根据移除手指的速度等,我会永久地错过一些touchesEnded。touchesCancelled是实现的,我添加了一个自定义的UIView,并将其放在屏幕的左侧-没有问题。我做了一个定制的SKView并捕获了事件--同样没有问题。
很明显,SKScene并没有得到它嵌入的所有touchesEnded -- SKView,但是为什么呢?
(顺便说一句,我正在运行完全没有任何节点的SKScene )
编辑:
一些进一步的调查显示,我可以让SKScene完全失去一点兴趣:
我把3个手指放在显示器上,然后每次移除一个手指,直到只有一个手指接触。我移动手指->,只有SKView接收移动事件,SKScene没有,也没有接收touchesEnded。
经过一些实验,我可以说,当一个touchesBegan在呼叫中接收到多于1次的触摸时(例如,您“同时”按两个手指),就会发生这种情况。这两个接触就会纠缠在一起,所以其中只有一个会发送事件。
这似乎是SKScene中的一个bug。我在iPhone 5上做测试。
发布于 2014-03-19 13:22:46
也许你在使用gestureRecognisers?它们有属性cancelsTouchesInView,它的默认值是,YES,。把它改为没有解决了我的问题。
https://stackoverflow.com/questions/19689885
复制相似问题