android cocos2d 触屏事件
来源:互联网 发布:淘宝买港版苹果手机 编辑:程序博客网 时间:2024/06/05 04:44
现在的移动设备都是可触摸设备,对于触屏操作也是最理所当然或者常见的,然而我们需要通过对触屏事件进行注册,然而事件的注册,只需要我们重写几个虚函数即可做到
函数声明如下:在我们需要进行触屏事件的Scene类当中进行
virtual void registerWithTouchDispatcher(); virtual bool ccTouchBegan(CCTouch*touch,CCEvent*event); virtual void ccTouchMoved(CCTouch*touch,CCEvent*event); virtual void ccTouchEnded(CCTouch*touch,CCEvent*event); virtual void ccTouchCancelled(CCTouch*touch,CCEvent*event); // virtual void onEnter(); virtual void onExit(); bool containsTouchLocation(cocos2d::CCTouch *touch); bool isControl;
我们可以这样认为
void CGameScene::registerWithTouchDispatcher() {//注册触摸事件CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);}bool CGameScene::ccTouchBegan(CCTouch*touch, CCEvent*event) {if (containsTouchLocation(touch)) {isControl = true;//CCMessageBox("we got !!", "dsad");return true;}else{//CCMessageBox("we got nothing", "dsade1");}return false;}void CGameScene::ccTouchMoved(CCTouch*touch, CCEvent*event) {if (isControl) {CCPoint touchPoint=convertTouchToNodeSpace(touch);m_hinstance->setPosition(touchPoint);}}void CGameScene::ccTouchEnded(CCTouch*touch, CCEvent*event) {isControl = false;}void CGameScene::ccTouchCancelled(CCTouch*touch, CCEvent*event) {isControl = false;}/*void CGameScene::onEnter(){CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);setTouchEnabled(true);}*/void CGameScene::onExit(){CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);}bool CGameScene::containsTouchLocation(cocos2d::CCTouch *touch){CCPoint touchPoint=convertTouchToNodeSpace(touch); return m_hinstance->boundingBox().containsPoint(touchPoint);}通过上述代码便能进行触摸检测,同时使得目标跟着手进行移动。
这里我要说的有一点,onEnter和registerWithTouchDispatcher两个函数,onEnter函数则是进行自动注册。而我们通过手动调用registerWithTouchDispatcher函数进行手动注册,这两个函数的函数体是一样的,只是区别在于手动和自动。
另外一点则是,进行Sprite的触摸检测
CCPoint touchPoint=convertTouchToNodeSpace(touch);return m_hinstance->boundingBox().containsPoint(touchPoint);这样就可以进行触摸之后的检测了。
0 0
- android cocos2d 触屏事件
- cocos2d-android学习六 --- 添加触屏事件
- cocos2d-x 触屏事件
- cocos2d-x 触屏事件
- cocos2d之触屏事件
- cocos2d-x Touch触屏事件
- cocos2d-x 触屏事件详解
- cocos2d-x 2.X 触屏事件
- cocos2d-x + lua 处理触屏事件
- Cocos2d-x 触屏事件解析
- cocos2d-x Touch触屏事件
- cocos2d-x 触屏事件详解
- cocos2d-x 自定义Touch事件触屏:
- Cocos2D-X事件处理机制之触屏事件
- Cocos2D-X事件处理机制之触屏事件
- cocos2d-android——触摸事件
- cocos2d-x 触屏事件(单点触屏)
- Cocos2d-x 3触屏事件(单点触屏)
- erlang中dict的实现
- u3d 巧用 CaptureScreenshot捕捉游戏画面(截图,截屏)
- linux用户创建,查看相关命令
- Java初学习 - Java中的浅拷贝和深拷贝
- 小事情大道理(一)
- android cocos2d 触屏事件
- 使用wxsqlite3后多表联合查询无数据的问题解决方法
- hihoCoder 1156 彩色的树
- Java基础语法
- 解题报告 之 SGU185 Two shortest
- 解析linux操作系统文件目录
- int a 和int*a = new int 的区别
- MYSQL数据库简单的状态检查(show processlist)
- 简介python装饰器