Cocos2d中添加手势支持的三种方法
最近一直琢磨在Cocos2d里添加手势的功能,找了一些资料加上自己的理解,整理出了三种方法和大家分享。
第一种,很简单,就是知易cocos2d-iPhone教程-04所介绍的(其实这并不是真正的手势,只是也能实现部分手势功能而已),代码如下:
1) 单击、双击处理
+(id) scene{//给层添加手势支持CCScene *scene = [CCScene node];// 'layer' is an autorelease object.HelloWorld *layer = [HelloWorld node];UIPanGestureRecognizer *gestureRecognizer = [[[UIPanGestureRecognizer alloc] initWithTarget:layer action:@selector(handlePanFrom:)] autorelease]; AppDelegate *delegate=(AppDelegate *)[UIApplication sharedApplication].delegate;[delegate.viewController.view addGestureRecognizer:gestureRecognizer];// add layer as a child to scene[scene addChild: layer];// return the scenereturn scene;}//手势识别函数- (void)handlePanFrom:(UIPanGestureRecognizer *)recognizer { if (recognizer.state == UIGestureRecognizerStateBegan) { CGPoint touchLocation = [recognizer locationInView:recognizer.view]; touchLocation = [[CCDirector sharedDirector] convertToGL:touchLocation]; touchLocation = [self convertToNodeSpace:touchLocation]; //实现的效果.. } else if (recognizer.state == UIGestureRecognizerStateChanged) { CGPoint translation = [recognizer translationInView:recognizer.view]; translation = ccp(translation.x, -translation.y); //实现的效果.. [recognizer setTranslation:CGPointZero inView:recognizer.view]; } else if (recognizer.state == UIGestureRecognizerStateEnded) { //实现的效果.. } }
以上是本人总结的三种在Cocos2d里添加手势支持的方法,不妥之处欢迎各位指教!