我注意到touchesEnded並不總是通過多點觸摸傳遞到SKScene。根據移除手指等的速度,我會永久地錯過一些touchesEnded。 touchesCancelled是實現的,我添加了一個自定義的UIView並放在屏幕的左側 - 沒有問題。我做了一個自定義SKView並捕獲了事件 - 再次沒有問題。SpriteKit SKScene missing touchesEnded
很明顯,SKScene並沒有獲得所有觸摸已經嵌入的SKView,但爲什麼?
(順便說一句,我運行SKScene完全沒有任何節點)
編輯:
一些進一步的調查顯示,我可以得到SKScene失去整個觸摸:
我把3根手指在顯示器上,然後一次刪除它們,直到只有一根手指觸摸。我移動手指 - >只有SKView收到移動事件,SKScene不收。它也沒有收到touchesEnded。
經過一番實驗後,我可以說它發生在touchesBegan在通話中接收到多於一次觸摸(例如,「同時按兩個手指」)時。然後這兩個接觸就會糾纏在一起,所以只有其中一個發送事件。
這似乎是SKScene中的一個錯誤。我正在測試一個iPhone 5.它會
任何手勢識別器正在運行?多點觸控啓用?收到多個觸摸結束在一個單一的事件? – LearnCocos2D
@ LearnCocos2D沒有手勢識別器(只需運行一個普通的SKScene作爲測試),啓用多點觸摸。我在單個touchesBegan中獲得了多個接觸,並且我還列出了該事件中的其他接觸。當我檢測到後來的touchesEnded時,丟失的觸摸從所有的觸摸中消失。 – Nuoji