Eksperymentowałem z UIGestureRecognizers
i nowym SKScene/SKNode's
w SpriteKit
. Miałem jeden problem i zbliżyłem się do naprawy, ale jestem zdezorientowany z jednej strony. Zasadniczo mam aparat rozpoznawania gestów, który pozwala użytkownikowi przeciągnąć ikonkę na ekranie.UIPanGestureRecognizer w SKScene
Jedyny problem, jaki mam, polega na tym, że JEDEN dotknięcie faktycznie inicjuje gest panoramowania, a następnie tylko w drugim naciśnięciu działa poprawnie. Myślę, że to dlatego, że mój gest panoramy został zainicjowany w touchesBegan
. Jednak nie wiem, gdzie go umieścić od czasu zainicjowania go w metodzie SKScene initWithSize
, która uniemożliwiła rozpoznawanie gestów.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (!self.pan) {
self.pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(dragPlayer:)];
self.pan.minimumNumberOfTouches = 1;
self.pan.delegate = self;
[self.view addGestureRecognizer:self.pan];
}
}
-(void)dragPlayer: (UIPanGestureRecognizer *)gesture {
CGPoint trans = [gesture translationInView:self.view];
SKAction *moveAction = [SKAction moveByX:trans.x y:-trans.y duration:0];
[self.player runAction:move];
[gesture setTranslation:CGPointMake(0, 0) inView:self.view];
}