Cocos2d-x   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos2d-x事件分发机制学习笔记大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是事件分发机制 EventDispatch是响应用户事件的一种机制。 基本概念: 事件监听器封装了事件处理的代码; 事件调度器通知用户事件的监听器; 事件对象包含了关于事件的信息。 事件监听器的5种类型 EventListenerTouch - 响应触摸事件 EventListenerKeyboard - 响应键盘事件 EventListenerAcceleration - 响应加速度计的事件 EventListenMouse - 响应鼠标事件 EventListenerCustom - 响应自定义事件 FixedPriority vs SceneGraphpriority EventDispatcher事件分发机制使用优先级来决定在事件开始时触发哪一个监听器。 FixedPriority是一个整数值。优先级值较低的事件监听器会在优先级值较高的事件监听器之前处理。 SceneGraphpriority是一个指向Node的指针。节点z-order值较高(在顶端绘制)的事件监听器在节点z-order值较低(在底端绘制)的事件监听器之前接受到事件。这将确保触摸事件能像你所期望的那样,从前往后依次传递 触摸事件 在手游中,最重要的事件是触摸事件。它们很容易被创建来提供通用的功能。首先我们要明确什么是触摸事件。当你触摸移动设备的屏幕时,屏幕会接收到这个触摸行为,并检查你触摸了哪里以及决定你触摸到了什么。然后你的触摸行为就会被响应。你所触摸的或许不是响应对象,但很有可能是它下面的东西。通常会给触摸事件分配优先级,优先级最高的就是被先响应的。 当你使用触摸事件侦听器时,这儿有三个不同的事件供你操作,它们每一个事件被调用的时间段是不相同的。 按下时会触发onTouchBegan函数。 按下时移动对象会触发onTouchMoved函数。 停止触摸时会触发onTouchEnded函数。 吞并事件(Swallowing Events) 如果你有一个监听器并且希望某个对象能接受到事件,那么你必须吞并它。换言之,吞并它能避免它把高优先级传递给其他低优先级对象。这很容易实现: 创建键盘事件 对于桌面游戏,你会发现键盘机制是非常有用的。Cocos2d-x支持键盘事件。像上面所讲的触摸事件一样,键盘事件也很容易创建: 创建加速计事件 很些移动设备都配备了加速度计。加速计是一个传感器,可以测量重力和方向上的变化。例如,来回移动你的电话来模拟平衡。Cocos2d-x也支持这些事件并且创建起来很简单。 创建鼠标事件 Cocos2d-x中一直支持鼠标事件。 值得注意的是,每个对象都只能注册一个触摸事件。如果多个对象需要使用相同的监听器,你需要使用clone()方法。 从分配器中移除事件 使用如下方法可以移除一个已有的监听器: _eventDispatcher->removeEventListener(listener); 尽管这看起来很特殊,但是内置的Node对象使用事件分发机制与我们所讲的方式是相同的。以Menu为例,当点击带有MenuItems属性的 Menu时,你就已经分配到了一个事件。同样也可对内置的Node对象使用removeEventListener方法。

大佬总结

以上是大佬教程为你收集整理的Cocos2d-x事件分发机制学习笔记全部内容,希望文章能够帮你解决Cocos2d-x事件分发机制学习笔记所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。