回答編集履歴
1
サンプルソースをObjectiveCで書いてしまったのでSwiftに修正
answer
CHANGED
|
@@ -3,34 +3,33 @@
|
|
|
3
3
|
タッチされているかの検知はtouchesBeganとtouchedEndedでフラグの上げ下げすればよいかと。
|
|
4
4
|
|
|
5
5
|
```
|
|
6
|
-
|
|
6
|
+
import SpriteKit
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
class GameScene: SKScene {
|
|
9
|
+
|
|
9
|
-
|
|
10
|
+
var isTouched: Bool = false
|
|
10
|
-
|
|
11
|
+
var someSprite: SKSpriteNode! //動かしたいspriteを入れる
|
|
11
|
-
}
|
|
12
12
|
|
|
13
|
-
//
|
|
13
|
+
//ごにょごにょ
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
|
|
16
|
-
{
|
|
17
|
-
|
|
16
|
+
if (//押されたのが対象のボタンだったら) {
|
|
18
|
-
|
|
17
|
+
isTouched = true
|
|
18
|
+
}
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
|
|
22
|
+
if (//押されたのが対象のボタンだったら) {
|
|
23
|
+
isTouched = false
|
|
20
|
-
}
|
|
24
|
+
}
|
|
21
|
-
|
|
22
|
-
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
|
|
23
|
-
{
|
|
24
|
-
if (//タッチされたのが対象のUIButtonだったら) {
|
|
25
|
-
isTouched = NO;
|
|
26
25
|
}
|
|
26
|
+
|
|
27
|
+
override func update(currentTime: CFTimeInterval) {
|
|
28
|
+
if isTouched {
|
|
29
|
+
let x: CGFloat = someSprite.position.x
|
|
30
|
+
let y: CGFloat = someSprite.position.y
|
|
31
|
+
someSprite.position = CGPointMake(x+5, y+5)
|
|
27
|
-
}
|
|
32
|
+
}
|
|
28
|
-
|
|
29
|
-
-(void)update:(CFTimeInterval)currentTime {
|
|
30
|
-
if (isTouched == YES) {
|
|
31
|
-
float x = someSprite.position.x;
|
|
32
|
-
float y = someSprite.position.y;
|
|
33
|
-
someSprite.position = CGPointMake(x+5, y+5);
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
```
|