2013-10-30 51 views
7

我注意到touchesEnded并不总是通过多点触摸传递到SKScene。根据移除手指等的速度,我会永久地错过一些touchesEnded。 touchesCancelled是实现的,我添加了一个自定义的UIView并放在屏幕的左侧 - 没有问题。我做了一个自定义SKView并捕获了事件 - 再次没有问题。SpriteKit SKScene missing touchesEnded

很明显,SKScene并没有获得所有触摸已经嵌入的SKView,但为什么?

(顺便说一句,我运行SKScene完全没有任何节点)

编辑:

一些进一步的调查显示,我可以得到SKScene失去整个触摸:

我把3根手指在显示器上,然后一次删除它们,直到只有一根手指触摸。我移动手指 - >只有SKView收到移动事件,SKScene不收。它也没有收到touchesEnded。

经过一番实验后,我可以说它发生在touchesBegan在通话中接收到多于一次触摸(例如,“同时按两个手指”)时。然后这两个接触就会纠缠在一起,所以只有其中一个发送事件。

这似乎是SKScene中的一个错误。我正在测试一个iPhone 5.它会

+0

任何手势识别器正在运行?多点触控启用?收到多个触摸结束在一个单一的事件? – LearnCocos2D

+0

@ LearnCocos2D没有手势识别器(只需运行一个普通的SKScene作为测试),启用多点触摸。我在单个touchesBegan中获得了多个接触,并且我还列出了该事件中的其他接触。当我检测到后来的touchesEnded时,丢失的触摸从所有的触摸中消失。 – Nuoji

回答

2

可能你正在使用一些gestureRecognisers? 他们有财产cancellsTouchesInView它的默认值是YES。 更改为解决了我的问题。

+0

不,我提出了一个完全空白的视图来测试。 – Nuoji