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

回答編集履歴

1

drag or drug

2018/08/08 02:01

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -11,4 +11,23 @@
11
11
 
12
12
  touchesMovedを修正すれば関係なくなるのでサラっと書きます。
13
13
 
14
- `.location(in: self)`を使っているので、取得できる座標は自分自身(**Square**)のローカル座標になってしまいます。その座標をScene座標系として使って(セットして)いるために、変な位置に移動&元の位置に戻る、を繰り返してしまいます。
14
+ `.location(in: self)`を使っているので、取得できる座標は自分自身(**Square**)のローカル座標になってしまいます。その座標をScene座標系として使って(セットして)いるために、変な位置に移動&元の位置に戻る、を繰り返してしまいます。
15
+
16
+ # 本来やりたかったこと
17
+
18
+ > 四角をドラッグしたときだけ移動するようにしたかったです。
19
+
20
+ ということなので、現状のコードを少し修正すればOKです。
21
+ タップした座標をSceneの座標系で取得します。
22
+
23
+ ```swift
24
+ let location = touches.first!.location(in: self.gameScene)
25
+ ```
26
+
27
+ ちゃんと書くならこうです。
28
+
29
+ ```swift
30
+ if let location = touches.first?.location(in: self.gameScene) {
31
+ self.position = location
32
+ }
33
+ ```