我试图让刷卡工作为Cocos2d最新版本这里是我的代码:
-(void) setupGestureRecognizers { UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft)]; [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft]; [swipeLeft setNumberOftouchesrequired:1]; [[[CCDirector sharedDirector] openGLView] addGestureRecognizer:swipeLeft]; }
它完全没有检测到滑动!
更新1:
-(void) setupGestureRecognizers { UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft)]; [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft]; [swipeLeft setNumberOftouchesrequired:1]; [[[[CCDirector sharedDirector] openGLView] window] setUserInteractionEnabled:YES]; [[[CCDirector sharedDirector] openGLView] setUserInteractionEnabled:YES]; [[[CCDirector sharedDirector] openGLView] addGestureRecognizer:swipeLeft]; }
我也尝试过这项工作,但我发现了一种更简单,也更好的控制方法.
所以例如,如果你想要检测左边的滑动我会这样跟随.
在你的类的接口中声明两个变量
CGPoint firstTouch; CGPoint lastTouch;
self.isTouchEnabled = YES;
-(void)cctouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSSet *alltouches = [event alltouches]; UITouch * touch = [[alltouches allObjects] objectAtIndex:0]; CGPoint location = [touch locationInView: [touch view]]; location = [[CCDirector sharedDirector] convertToGL:location]; //Swipe Detection Part 1 firstTouch = location; } -(void) cctouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { NSSet *alltouches = [event alltouches]; UITouch * touch = [[alltouches allObjects] objectAtIndex:0]; CGPoint location = [touch locationInView: [touch view]]; location = [[CCDirector sharedDirector] convertToGL:location]; //Swipe Detection Part 2 lastTouch = location; //Minimum length of the swipe float swipeLength = ccpdistance(firstTouch,lastTouch); //Check if the swipe is a left swipe and long enough if (firstTouch.x > lastTouch.x && swipeLength > 60) { [self doStuff]; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。