は、それらのノードにタッチに応答することは、多くの場合、このようないくつかの方法で行われます。touchesBegan、最初や最後だけでなく、すべてのタッチを取得する方法? SpriteKitベースのSKSpriteNodesおよび他の可視ノードで
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {...
// do something with the touch location that's now in touch
// etc
これは、すべての素晴らしいですが、私は確認する場合、私はタッチの情報を何を得ますこの中のすべてのタッチの(想像してみましょう...)SKSpriteNode?
= touches.firstは、このSKSpriteNode内の最初のタッチにのみ応答するよう条件を限定します。このSKSpriteNodeのすべての接触に対して、どのようにその場所が利用可能であるか、それが何であれ、持ち歩いて持ち歩くようになっている。
私は知っています。ばかげた質問。私はその男だ。私はこれがどのように行われているのか分かりません。
:)ことを行う方法を示す数多くの良い答えがある - 便利になるところです。 'touches.first'は最初のタッチを返しますので、「何が触れていますか?」と尋ねる必要があります。メソッドシグネチャを見ると、 'touches'が 'Set'であることがわかります。また、「touch」をalt-クリックすると、Xcodeでツールヒントが表示されます。今質問は 'Setのすべてのメンバーにアクセスする方法'ですので、Swiftのマニュアルとコレクションリファレンスの 'Set'情報を参照してください。これらの種類の質問を練習してください:-) –
行方不明:「これを行うための最善の方法」、「最も効率的な方法」、「これを行う最も柔軟な方法は何ですか?他の主観的な質問は私が敢えて尋ねるのではなく、答えを求めています。私はそれが 'Set'であることを知っています、' Set 'から、' forループを通してセットの内容にアクセスする方法を知っています...しかし、確かに、これはタッチを扱うほど重要なことを行うための最良の/正しい/柔軟な方法ではありません...そうですか? ! @SteveIves。そして、 'multipleTouchEnabled'の必要性があります。これは、試行錯誤だけで学ぶことができます。そして、同じ質問をしている人々、それに従う人々がいます。 –
Confused
しかし、ほとんどの場合、SpriteKit(Appleがそれを気にしていて、多くのユーザーがいた場合)の使用に固有のものでなければならないあらゆる方法のドキュメントは、せいぜい節約しています... – Confused