9

マルチタッチで touchesEnded が常に SKScene に配信されるとは限らないことに気付きました。指を離す速度などによっては、一部のタッチを完全に見逃してしまいます。touchesCancelled が実装され、カスタム UIView を追加して画面の左側に配置しました - 問題ありません。カスタム SKView を作成し、イベントをキャプチャしました。これも問題ありません。

SKScene が埋め込まれている SKView のすべての touchesEnded を取得できないことは明らかですが、なぜですか?

(ところで、ノードなしで SKScene を完全に実行しています)

編集:

さらに調査を進めると、SKScene のタッチが完全に失われる可能性があることがわかります。

ディスプレイに 3 本の指を置き、1 本の指だけが触れるまで一度に 1 本ずつ指を離します。指を動かします -> SKView だけが移動イベントを受け取り、SKScene は受け取りません。touchesEnded も受け取りません。

いくつかの実験の後、 touchesBegan が呼び出しで複数のタッチを受信した場合に発生すると言えます (たとえば、2 本の指を「同時に」押す)。これら 2 つのタッチは絡み合うため、そのうちの 1 つだけがイベントを送信します。

これは SKScene のバグのようです。iPhone 5でテストしています。

4

1 に答える 1

2

いくつかのジェスチャレコグナイザーを使用している可能性がありますか? プロパティcancelsTouchesInViewがあり、デフォルト値はYESです。NOに変更すると問題が解決しました。

于 2014-03-19T13:22:46.757 に答える