怎样在 Cocos2d里面使用 UITapGestureRecognizer来处理单击和双击

原创 2012年03月21日 17:16:56

              怎样在 Cocos2d里面使用 UITapGestureRecognizer来处理单击和双击


            在CCLayer的头文件中定义:
        UITapGestureRecognizer *singleTap;

       .m文件中:
       
        //处理  单击
        singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:
                     @selector(handleSingleTap:)];
        
        singleTap.numberOfTapsRequired=1;
        singleTap.numberOfTouchesRequired=1;
        
        [[[CCDirector  sharedDirector] openGLView] addGestureRecognizer: singleTap];
        [singleTap release];


    如果 要处理双击:
    
        doubleTap.numberOfTapsRequired = 2;
        doubleTap.numberOfTouchesRequired = 1;

   下面是 响应函数:
   
-(void)  handleSingleTap:(id)sender;

-(void)  handleSingleTap:(id)sender
{
    UNUSED(sender);
    NSLog(@"handleSingleTap  \r\n");
    
    CGSize screenSize = [CCDirector sharedDirector].winSize; 
    CGPoint  point=[singleTap locationInView:[[CCDirector  sharedDirector] openGLView]];
	CGPoint  glLocation=[[CCDirector sharedDirector] convertToGL:point];
    
    //判断点击的是否是“想要的”的区域
    bool  bSingleClickTableForme=false;
    CGRect   tableFormeRect=CGRectMake(5.0f, 10.0f, 125.0f, 58.0f);
    if ( CGRectContainsPoint(tableFormeRect, glLocation)==true) 
    {
        bSingleClickTableForme=true;
    }
}


需要注意的是,如果给一个Layer加上了Singletap的手势识别后,将会导致界面上面的其他组件比如:CCMenu不再能响应点击,因为点击消息全部被手势所截获,所以一般不要使用SingleTap,但是使用DoubleTap是没有什么问题的。一定要实现类似SingleTap的类似效果,可以处理TouchEnd事件,然后在里面判断坐标位置来处理。



        


       

cocos2dx touch 单击、双击、三连击和长按事件处理

#include "TouchTest.h" TouchTest::TouchTest() { m_longProgress=false; } bool isTouch=false; ...
  • wxc734809128
  • wxc734809128
  • 2014年04月11日 22:30
  • 9167

UITapGestureRecognizer手势识别之双击和单击结合

通过 单击和双击 对 图片视图 进行放大和 缩小的效果: #pragma mark - UITapGestureRecognizer - (void)UITapGestureRecognizer...
  • zzx240394381
  • zzx240394381
  • 2017年01月15日 13:36
  • 526

多功能按键设计——利用一个I/O口,接一个按键,实现3功能操作:单击 + 双击 + 长按

看了一个晚上,结合了马潮老师的书,才搞懂这个程序,确实经典!原文:http://www.amobbs.com/thread-4991902-1-1.html 题目:多功能按键设计。利用一个I/O口,...
  • zzwdkxx
  • zzwdkxx
  • 2013年01月15日 21:57
  • 5820

iOS开发笔记--识别单击还是双击

在视图上同时识别单击手势和双击手势的问题在于,当检测到一个单击操作时,无法确定是确实是一个单击操作或者只是双击操作中的第一次点击。解决这个问题的方法就是:在检测到单击时,需要等一段时间等待第二次点击,...
  • hopedark
  • hopedark
  • 2013年12月27日 10:49
  • 11186

[转载]iOS防止单击、双击手势冲突(OC)

原文链接:http://blog.csdn.net/likendsl/article/details/7554150 ios的手势操作之UIGestureRecognizer浅析 手势识别是具有互...
  • u011460961
  • u011460961
  • 2015年05月17日 18:04
  • 1405

C#窗体鼠标事件区分单击双击

直接用窗体的click和doubleclick事件相应函数是没办法区分的,因为click在doubleclick前面被触发。 办法一: 在mousedown事件中处理,通过timer计算两次单击时...
  • gaiazhang
  • gaiazhang
  • 2016年12月28日 16:16
  • 1655

MFC 处理双击事件时屏蔽掉单击事件

void CPlayWnd::OnLButtonDown(UINT nFlags, CPoint point) { //屏蔽双击时的单击事件 MSG message; DWORD st...
  • u011056389
  • u011056389
  • 2013年11月25日 19:21
  • 2367

jquery 区分鼠标单击双击事件插件

原文地址: 大家应该都知道javascript中鼠标单击和双击事件,一般情况下,对一个元素只需要绑定一个单击事件,或者绑定一个双击事件就可以了。但是有些特别的情况下,会对...
  • z69183787
  • z69183787
  • 2014年05月05日 11:14
  • 8006

MFC学习笔记之:Windows如何区分鼠标双击和两次单击

转载至http://m.blog.csdn.net/blog/a408789699/5635131        MFC学习笔记之:Windows如何区分鼠标双击和两次单击 在Wi...
  • a18950423886
  • a18950423886
  • 2015年10月30日 20:05
  • 1158

鼠标单击和双击处理

/**************************************************************************** * ====================...
  • yong_chang
  • yong_chang
  • 2013年04月08日 09:15
  • 400
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样在 Cocos2d里面使用 UITapGestureRecognizer来处理单击和双击
举报原因:
原因补充:

(最多只允许输入30个字)