Tôi đã thử nghiệm với UIGestureRecognizers
và SKScene/SKNode's
mới trong SpriteKit
. Tôi đã có một vấn đề, và tôi đã gần sửa chữa nó nhưng tôi bối rối về một điều. Về cơ bản, tôi có một trình nhận dạng cử chỉ cho phép người dùng kéo một hình ảnh trên màn hình.UIPanGestureRecognizer trong SKScene
Vấn đề duy nhất tôi có là phải mất một lần nhấn để thực sự khởi chạy cử chỉ xoay, và sau đó chỉ trên vòi SECOND trên nó hoạt động chính xác. Tôi nghĩ rằng điều này là do cử chỉ pan của tôi được khởi tạo trong touchesBegan
. Tuy nhiên, tôi không biết nơi nào khác để đặt nó kể từ khi khởi tạo nó trong phương pháp initWithSize
của SKScene đã dừng trình nhận dạng cử chỉ thực sự hoạt động.
-(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];
}