質問: "J"{print("hit")} どうか、設定の仕方と、反映の仕方を教えていただきたくお願いいたします。
回答: **1.マルチタップの動作の確認** 押された数を知るにはtouches.countがあります。3カ所同時タップは3となります。 override func touchesBegan(touches: Set, withEvent event: UIEvent?){ print( touches.count ) } **2.同時押しのノードチェック** 複数カ所タッチ押下にあるスプライトノードのことで良いですか? ``` override func touchesBegan(touches: Set, withEvent event: UIEvent?) { //同時タッチ数をコンソールに表示 print(touches.count) //タッチ分繰り返す for touch: AnyObject in touches { let touchLocation = touch.locationInNode(self) print(self.nodeAtPoint(touchLocation).name) } } ``` 上記コードは以下のようになります。画面上をタップすると、 * 同時タッチ数とタッチ位置にあるノードの名前をコンソールに表示します。 * 同時タップ数が3の場合、ループして3つの表示をします。 * ノード名が未設定の場合nameはnilが表示されます(実行コードではエラー)、ノードも何もない場合selfを返します。 上記はfor文を使いタップ位置をすべて見ます、同時押し・スプライトの位置は固定されるなど 未知な条件が少ないようでしたらcase文なども良いと思います。 補足ですがノードの重なりも見る場合nodesAtPointを使い配列にいれます。 設定や登録といった作業が必要になるのはUITapGestureRecognizerのことかも知れません。 回答追加1 画面上のタッチ数とタッチ押下のスプライトを列挙するコードです。 ``` override func touchesBegan(touches: Set, withEvent event: UIEvent?) { var nodes:[SKNode]! print(touches.count) //タッチカ所分繰り返す for touch: AnyObject in touches { let touchLocation = touch.locationInNode(self) //タッチしたポイントにあるノードを返す nodes=self.nodesAtPoint(touch.locationInNode(self)) //ノード数分繰り返す for i in 0 ..< nodes.count { if nodes[i].name != nil { print[nodes[i].name) print(nodes[i].position) } } } ``` タッチ後にタッチ座標のスプライトの有無を調べています。名前と座標を表示します。 手がかりになれば幸いです。 タッチ座標に追従した形にする場合、非表示のスプライトを用意してphysicsBodyで呼ぶなどどうでしょう。