2013-10-30 36 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