teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード修正・追加回答のサンプルコードの変数名の修正

2016/10/08 16:10

投稿

renas
renas

スコア28

answer CHANGED
@@ -53,9 +53,9 @@
53
53
  nodes=self.nodesAtPoint(touch.locationInNode(self))
54
54
  //ノード数分繰り返す
55
55
  for i in 0 ..< nodes.count {
56
- if arrayNode[i].name != nil {
56
+ if nodes[i].name != nil {
57
- print(arrayNode[i].name)
57
+ print[nodes[i].name)
58
- print(arrayNode[i].position)
58
+ print(nodes[i].position)
59
59
  }
60
60
  }
61
61
  }

1

質問の意図に対し回答不十分により補足・追加しました

2016/10/08 16:10

投稿

renas
renas

スコア28

answer CHANGED
@@ -31,4 +31,36 @@
31
31
  未知な条件が少ないようでしたらcase文なども良いと思います。
32
32
  補足ですがノードの重なりも見る場合nodesAtPointを使い配列にいれます。
33
33
 
34
- 設定や登録といった作業が必要になるのはUITapGestureRecognizerのことかも知れません。
34
+ 設定や登録といった作業が必要になるのはUITapGestureRecognizerのことかも知れません。
35
+
36
+ ---
37
+
38
+ 回答追加1
39
+
40
+ 画面上のタッチ数とタッチ押下のスプライトを列挙するコードです。
41
+ ```swift
42
+ override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
43
+
44
+ var nodes:[SKNode]!
45
+ print(touches.count)
46
+
47
+ //タッチカ所分繰り返す
48
+ for touch: AnyObject in touches {
49
+
50
+ let touchLocation = touch.locationInNode(self)
51
+
52
+ //タッチしたポイントにあるノードを返す
53
+ nodes=self.nodesAtPoint(touch.locationInNode(self))
54
+ //ノード数分繰り返す
55
+ for i in 0 ..< nodes.count {
56
+ if arrayNode[i].name != nil {
57
+ print(arrayNode[i].name)
58
+ print(arrayNode[i].position)
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ タッチ後にタッチ座標のスプライトの有無を調べています。名前と座標を表示します。
65
+ 手がかりになれば幸いです。
66
+ タッチ座標に追従した形にする場合、非表示のスプライトを用意してphysicsBodyで呼ぶなどどうでしょう。