玩家输入事件
本篇教程,我们将介绍 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);
- 回调参数:
- Touches: 触摸点的列表,单个TouchAPI 传送门
注意:onTouchBegan 回调事件里要return true , 这样后续的onTouchEnded 和onTouchMoved 才会触发事件。
// 添加单点触摸事件监听器
var listener = {
event: cc.EventListener.TOUCH_ONE_BY_ONE,onTouchBegan: function (touches,68)">'Touch Began: ' + event);
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 回调事件里也要onTouchesEnded 和onTouchesMoved 才会触发事件。
// 添加多点触摸事件监听器
var listener = {
event: cc.EventListener.TOUCH_ALL_AT_ONCE,onTouchesBegan: function (touches,event) {
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); (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|