【发布时间】:2013-11-10 11:27:01
【问题描述】:
我注意到 touchesEnded 并不总是通过多点触控传递到 SKScene。根据移除手指等的速度,我会永久错过一些 touchesEnded。 touchesCancelled 已实现,我添加了一个自定义 UIView 并放在屏幕左侧 - 没问题。我制作了一个自定义 SKView 并捕获了事件 - 再次没问题。
很明显 SKScene 没有得到所有的触摸结束了它嵌入的 SKView,但是为什么呢?
(顺便说一句,我正在完全运行 SKScene,没有任何节点)
编辑:
一些进一步的调查显示我可以让 SKScene 完全失去联系:
我将 3 根手指放在显示屏上,然后一次取出一根,直到只有一根手指接触。我移动手指-> 只有 SKView 接收移动事件,SKScene 没有。它也不会收到 touchesEnded。
经过一些实验,我可以说当 touchesBegan 在通话中收到超过 1 次触摸时会发生这种情况(例如,您“同时”按下两根手指)。然后这两个触摸会纠缠在一起,因此只有其中一个会发送事件。
这似乎是 SKScene 中的一个错误。我正在 iPhone 5 上进行测试。它会
【问题讨论】:
-
任何手势识别器正在运行?启用多点触控?收到多次触摸以单个事件结束?
-
@LearnCocos2D 没有手势识别器(只是运行一个普通的 SKScene 作为测试),启用了多点触控。我在一次 touchesBegan 中获得了多次触摸,并且我还列出了事件中的其他触摸。当我检测到后来的 touchesEnded 时,丢失的触摸会从 allTouches 中消失。
标签: ios sprite-kit touches uiresponder