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

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

玩家输入事件

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

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

  • 键盘事件
  • 鼠标事件
  • 触摸(单点与多点)事件

如何定义输入事件

所有的事件都是通过函数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 (多点触摸)

鼠标事件

  • 事件监听器类型: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相关文章