回答編集履歴

1

drag or drug

2018/08/08 02:01

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -25,3 +25,41 @@
25
25
 
26
26
 
27
27
  `.location(in: self)`を使っているので、取得できる座標は自分自身(**Square**)のローカル座標になってしまいます。その座標をScene座標系として使って(セットして)いるために、変な位置に移動&元の位置に戻る、を繰り返してしまいます。
28
+
29
+
30
+
31
+ # 本来やりたかったこと
32
+
33
+
34
+
35
+ > 四角をドラッグしたときだけ移動するようにしたかったです。
36
+
37
+
38
+
39
+ ということなので、現状のコードを少し修正すればOKです。
40
+
41
+ タップした座標をSceneの座標系で取得します。
42
+
43
+
44
+
45
+ ```swift
46
+
47
+ let location = touches.first!.location(in: self.gameScene)
48
+
49
+ ```
50
+
51
+
52
+
53
+ ちゃんと書くならこうです。
54
+
55
+
56
+
57
+ ```swift
58
+
59
+ if let location = touches.first?.location(in: self.gameScene) {
60
+
61
+ self.position = location
62
+
63
+ }
64
+
65
+ ```