Cocos Creator 玩家输入事件(摘自官方文档)

前端之家收集整理的这篇文章主要介绍了Cocos Creator 玩家输入事件(摘自官方文档)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

玩家输入事件

本篇教程,我们将介绍 Cocos Creator 的玩家输入事件。

目前支持了以下几种事件:

@H_301_6@
  • 键盘事件
  • 鼠标事件
  • 触摸(单点与多点)事件
  • 如何定义输入事件

    所有的事件都是通过函数cc.eventManager.addListener(listener,target)来进行添加

    可选的event类型有:

    1. cc.EventListener.MOUSE (鼠标)
    2. cc.EventListener.KEYBOARD (键盘)
    3. cc.EventListener.TOUCH_ONE_BY_ONE (单点触摸)
    4. cc.EventListener.TOUCH_ALL_AT_ONCE (多点触摸)

    鼠标事件

    @H_301_6@
  • 事件监听器类型:cc.EventListener.MOUSE
  • 事件触发后的回调函数
    • 鼠标按下:onMouseDown(event);
    • 鼠标释放:onMouseUp(evnet);
    • 鼠标移动:onMouseMove(evnet);
    • 鼠标滚轮:onMouseScroll(evnet);
  • 回调参数:
  • // 添加鼠标事件监听器
    var listener = {
        event: cc.EventListener.MOUSE,onMouseDown: function (event) {
            cc.log('Mouse Down: ' + event);
        },onMouseUp: function (event) {
            cc.log('Mouse Up: ' + event);
        },
        onMouseMove: function (event) {
           cc.log('Mouse Move: ' + event);
        }
        onMouseScroll: function (event) {
           cc.log('Mouse Scroll: ' + event);
        }
    }
    // 绑定鼠标事件
    cc.eventManager.addListener(listener,this.node);

    键盘事件

      cc.EventListener.KEYBOARD
    • 事件触发后的回调函数
      • 键盘按下:onKeyPressed(keyCode,event);
      • 键盘释放:onKeyReleased(keyCode,evnet);
    • 回调参数:
      • KeyCode:API 传送门
      • Event:// 添加键盘事件监听器 var listener = { event: cc.EventListener.KEYBOARD,onKeyPressed: function (keyCode,event) { cc.log('keyDown: ' + keyCode); },onKeyReleased: function (keyCode,68)">'keyUp: ' + keyCode); } } // 绑定键盘事件 cc.eventManager.addListener(listener,this.node);

        单点触摸事件

          cc.EventListener.TOUCH_ONE_BY_ONE
        • 事件触发后的回调函数
          • 触摸开始:onTouchBegan(touches,event);
          • 触摸移动时:onTouchMoved(touches,event);
          • 触摸结束时:onTouchEnded(touches,event);
          • 取消触摸:onTouchCancelled(touches,event);
        • 回调参数:

        注意:onTouchBegan回调事件里要return true, 这样后续的onTouchEndedonTouchMoved才会触发事件。

        // 添加单点触摸事件监听器
        var listener = {
            event: cc.EventListener.TOUCH_ONE_BY_ONE,onTouchBegan: function (touches,68)">'Touch Began: ' + event);
                return true; //这里必须要写 return true
            },onTouchMoved: function (touches,68)">'Touch Moved: ' + event);
            },
            onTouchEnded: function (touches,event) {
               cc.log('Touch Ended: ' + event);
            }
            onTouchCancelled: function (touches,68)">'Touch Cancelled: ' + event);
            }
        }
        // 绑定单点触摸事件
        cc.eventManager.addListener(listener,this.node);

        多点触摸事件

          cc.EventListener.TOUCH_ALL_AT_ONCE
        • 事件触发后的回调函数
          • 触摸开始:onTouchesBegan(touches,event);
          • 触摸移动时:onTouchesMoved(touches,event);
          • 触摸结束时:onTouchesEnded(touches,event);
          • 取消触摸:onTouchesCancelled(touches,sans-serif; font-size:16px; line-height:25.6px"> 同理:onTouchesBegan回调事件里也要onTouchesEndedonTouchesMoved才会触发事件。

            // 添加多点触摸事件监听器
            var listener = {
                event: cc.EventListener.TOUCH_ALL_AT_ONCE,onTouchesBegan: function (touches,event) {
                    // touches 触摸点的列表
                    cc.log(function (touches,68)">'Touch Moved: ' + event);
                },
                onTouchesEnded: function (touches,68)">'Touch Ended: ' + event);
                }
                onTouchesCancelled: function (touches,136); font-style:italic">// 绑定多点触摸事件
            cc.eventManager.addListener(listener,this.node);

    猜你在找的Cocos2d-x相关文章