我一直在使用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]; }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。