【cocos2d-js官方文档】十七、事件分发机制,cocos2d-js分发

  次阅读 来源:互联网(转载协议) 2015-09-28 15:09 我要评论(0)

【cocos2d-js官方文档】十七、事件分发机制,cocos2d-js分发

简介

游戏开发中一个很重要的功能就是交互,如果没有与用户的交互,那么游戏将变成动画,而处理用户交互就需要使用事件监听器了。

总概:

事件监听器(cc.EventListener) 封装用户的事件处理逻辑

事件管理器(cc.eventManager) 管理用户注册的事件监听器,根据触发的事件类型分发给相应的事件监听器

事件对象(cc.Event) 包含事件相关信息的对象

如何使用呢? 首先需要创建一个事件监听器,事件监听器包含以下几种类型:

触摸事件监听器 (cc.EventListenerTouch)

键盘事件监听器 (cc.EventListenerKeyboard)

加速计事件监听器 (cc.EventListenerAcceleration)

鼠标事件监听器 (cc.EventListenerMouse)

自定义事件监听器 (cc.EventListenerCustom)

在监听器中实现各种事件的处理逻辑,然后将监听器加入到事件管理器中, 当事件触发时,事件管理器会根据事件类型分发给相应的事件监听器。下面以一个简单的示例来演示使用的方法。

使用方法

现在会在一个场景中添加三个按钮(cc.Sprite),三个按钮将会互相遮挡,并且都需要能够监听和处理触摸事件,以下是具体实现

首先创建三个精灵,作为三个按钮的显示图片

var sprite1 = new cc.Sprite("Images/CyanSquare.png");

sprite1.x = size.width/2 - 80;

sprite1.y = size.height/2 + 80;

this.addChild(sprite1, 10);

var sprite2 = new cc.Sprite("Images/MagentaSquare.png");

sprite2.x = size.width/2;

sprite2.y = size.height/2;

this.addChild(sprite2, 20);

var sprite3 = new cc.Sprite("Images/YellowSquare.png");

sprite3.x = 0;

sprite3.y = 0;

sprite2.addChild(sprite3, 1);

创建一个单点触摸事件监听器(事件类型:TOUCH_ONE_BY_ONE),并完成逻辑处理内容

// 创建一个事件监听器 OneByOne 为单点触摸

var listener1 = cc.EventListener.create({

event: cc.EventListener.TOUCH_ONE_BY_ONE,

swallowTouches: true,// 设置是否吞没事件,在 onTouchBegan 方法返回 true 时吞掉事件,不再向下传递。

onTouchBegan: function (touch, event) {//实现 onTouchBegan 事件处理回调函数

var target = event.getCurrentTarget();// 获取事件所绑定的 target, 通常是cc.Node及其子类

// 获取当前触摸点相对于按钮所在的坐标

var locationInNode = target.convertToNodeSpace(touch.getLocation());

var s = target.getContentSize();

var rect = cc.rect(0, 0, s.width, s.height);

if (cc.rectContainsPoint(rect, locationInNode)) {// 判断触摸点是否在按钮范围内

cc.log("sprite began... x = " + locationInNode.x + ", y = " + locationInNode.y);

target.opacity = 180;

return true;

}

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...