我一直在使用UIGestureRecognizers和SpriteKit中的新SKScene / SKNode.我遇到了一个问题,我已经接近修复了,但是我对此感到困惑.本质上,我有一个平移手势识别器,允许用户拖动一个精灵在屏幕上.
我遇到的一个问题是,需要一个轻点实际初始化泛手势,然后只有在其上的第二个点击它正常工作.我在想,这是因为我的pan手势是在touchesBegan中初始化的.但是,我不知道在SKScene的initWithSize方法中初始化之后将其放在哪里,从而阻止手势识别器实际工作.这是我的代码:
-(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]; }