cocos2dx中的触摸事件及触摸优先级

1.只有CCLayer及其派生类才有触摸功能.

2.开启触摸

setTouchEnable(true);

3.设置触摸模式,单点,多点(仅IOS支持)

setTouchMode(kCCTouchesOneByOne);//单点触摸

4.需要重载(override)的四个触摸事件函数

bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);//点触事件,返回false,表示触摸事件不往下传递了
 void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);//移动事件
 void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);//结束事件
 void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);//终止事件

5.获取点触的坐标点

pTouch->getLocation();

6.获取移动的相对位移delta

pTouch->getDelta();

7.判断精灵是否被点中,boundingBox(缩放后的大小),contentsize(实际的大小)

spr->boundingBox().containsPoint(pTouch->getLocation())==true?

8.设置触摸优先级及消息吞噬

/*导演获得触摸事件分发器*/
  CCTouchDispatcher* pDispatcher = CCDirector::sharedDirector()->getTouchDispatcher();
  /*-1表示消息的优先级,越小表示优先级越高,false表示不吞噬消息,设置为true表示消息在本层吞噬,不再往下传递*/
  pDispatcher->addTargetedDelegate(this, -1, false);

函数原型:

void CCTouchDispatcher::addTargetedDelegate(CCTouchDelegate *pDelegate, int nPriority, bool bSwallowsTouches);

时间: 2024-10-07 08:04:46

cocos2dx中的触摸事件及触摸优先级的相关文章

cocos2dX 事件之触摸事件和触摸事件集合

今天, 我们来学习cocos2dX里面的触摸事件与触摸事件合集, 现在的手机游戏交互基本上都是通过触摸交互的, 所以大家明白这节的重要性了吧, 本节篇幅比较大, 所以我就不扯闲话了 先来看看常用函数: 触摸事件: addTargeteDelegate( 谁使用, 优先级, 是否拦截触摸消息); //注册单点触摸 virtual bool ccTouchBegan(CCTouch * touch,CCEvent * event); //触摸开始 virtual void ccTouchMoved(

cocos2d-x中关于touch事件的响应

原作者:有缘人  来源:新浪微博 地址:http://blog.sina.com.cn/s/blog_6ac2c7260102vvdu.html 一.touch事件响应分为单点触摸响应和多点触摸响应. 单点触摸响应需要重载的方法: virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent); virtual void

cocos2dx 2.2 之触摸事件

cocos2dx  2.2  之触摸事件 要使精灵能够接收到触摸事件,无非要做三件事. 注册触摸事件; 接收触摸事件; 处理触摸事件. 下面就从这三点出发,来了解一下精灵如何响应触摸事件. 1.注册触摸事件 精灵类Poker继承Sprite和CCTargetedTouchDelegate,并重写CCTargetedTouchDelegate的三个函数ccTouchBegan,ccTouchMoved,ccTouchEnded 同时加入辅助函数rect()和containTouchPoint(CC

cocos2d-x 启动触摸事件

cocos2d-x的触摸事件分为  单点触摸事件 及 多点触摸事件 单点触摸事件: void A::onEnter(){ CCLayer::onEnter(); CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, false); } void A::onExit(){ CCDirector::sharedDirector()->getTouchDispatcher()->r

Android ViewGroup触摸事件拦截详解

前言 在自定义ViewGroup中,有时候需要实现触摸事件拦截,比如ListView下拉刷新就是典型的触摸事件拦截的例子.触摸事件拦截就是在触摸事件被parent view拦截,而不会分发给其child,即使触摸发生在该child身上.被拦截的事件会转到parent view的onTouchEvent方法中进行处理.但是这个交互过程还是挺复杂的,有多种情况,今天我们就来分析一下吧.这篇分析文章已经放了一段时间了,如果有任何问题请高人指出. 触摸事件的分发 简单来说触摸事件的分发会经过这么几个顺序

2.0 触摸事件

UIView不接收触摸事件的三种情况: 1.不接收用户交互 userInteractionEnabled = NO 2.隐藏 hidden = YES 3.透明 alpha = 0.0 ~ 0.01 4. 如果子视图的位置超出了父视图的有效范围, 那么子视图也是无法与用户交互的, 即使设置了父视图的 clipsToBounds = NO, 可以看懂, 但是也是无法与用户交互的 提示:UIImageView的userInteractionEnabled默认就是NO,因此UIImageView以及它

触摸事件基本介绍

iOS中的事件 响应者对象 ● 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事 件.我们称之为“响应者对象” ● UIApplication.UIViewController.UIView都继承?自UIResponder,因此它们都 是响应者对象,都能够接收并处理事件 UIResponder ● UIResponder内部提供了以下?方法来处理事件 ? 触摸事件 - (void)touchesBegan:(NSSet *)touches withEve

猫猫学IOS(二十五)UI之触摸事件

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents iOS中的事件 在用户使用app过程中,会产生各种各样的事件;iOS中的事件可以分为3大类型: 响应者对象–UIResponder 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为"响应者对象" UIApplication.UIViewController.UI

OnTouchListener触摸事件

在AndroidApp应用中,OnTouch事件表示触摸事件,本章我们通过滑过图像获取当前位置理解其具体用法. 知识点:OnTouch 一.设计界面 1.首先把c.jpg图片复制到res/drawable-hdpi文件夹内. 2.打开"res/layout/activity_main.xml"文件. (1)从工具栏向activity拖出1个图像ImageView.1个文本标签TextView. 3.打开activity_main.xml文件. 代码如下: <RelativeLay