首页 > 其他 > 详细

cocos2d-x-3.x 触摸反馈(3)事件传递

时间:2015-12-08 00:05:08      阅读:273      评论:0      收藏:0      [点我收藏+]

一个单点触摸事件的完整流程。

 1 bool HelloWorld::init()
 2 {
 3     if ( !Layer::init()) 
 4     {
 5         return false;
 6     }
 7     Size size = Director::getInstance()->getVisibleSize();    //获取有效长度
 8     auto label = LabelTTF::create("Click me", "Courier", 30);    //输入文字
 9     label->setPosition(size.width / 2, size.height / 2);    //中央
10     addChild(label);    //加入图层
11     auto listener = EventListenerTouchOneByOne::create();    //创建事件监听器,C++11的特性
12     listener->onTouchBegan = [](Touch *t, Event *e){    //捕获变量
13         
14         if (e->getCurrentTarget()->getBoundingBox().containsPoint(t->getLocation())){//获取事件目标,获取边界区域,获取触摸点
15             log("onTouchBegan");    //反馈输出
16         }
17         return true;    //注意这里改了,如果为false以下的两个事件不会触发
18     };
19     listener->onTouchMoved = [](Touch* t, Event *e){//新建监听,移动触发
20         log("onTouchMoved");
21     };
22     listener->onTouchEnded = [](Touch* t, Event *e){ //新建监听,触摸结束触发
23         log("onTouchEnd");
24     };
25         Director::getInstance()->getEventDispatcher()->
26         addEventListenerWithSceneGraphPriority(listener, label);
27     return true;
28 }

这个的运行效果就是,点击目标输出begin,抬起鼠标输出end,在屏幕上上滑动出现一连串的moved。

基本上一套小完整的单点触摸反馈机制。

cocos2d-x-3.x 触摸反馈(3)事件传递

原文:http://www.cnblogs.com/aprillie/p/5027783.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!