这篇参考博客很不错:
https://www.jianshu.com/p/21f7b2fc3468
我写成的是一个拖动脚本:
cc.Class({
extends: cc.Component,
properties:
{
},
onLoad() {
this.registerEvent();
},
registerEvent() {
//touchstart 可以换成cc.Node.EventType.TOUCH_START
this.node.on('touchstart', this.onEventStart, this);
//touchmove 可以换成cc.Node.EventType.TOUCH_MOVE
this.node.on('touchmove', this.onEventMove, this);
//touchcancel 可以换成cc.Node.EventType.TOUCH_CANCEL
this.node.on('touchcancel', this.onEventCancel, this);
//touchend 可以换成cc.Node.EventType.TOUCH_END
this.node.on('touchend', this.onEventEnd, this);
},
init(data) {
},
/**
* 触摸开始
* @param {*} event
*/
onEventStart(event) {
//世界坐标
//let worldPoint = event.getLocation();
//console.log('start Event \n worldPoint=', worldPoint);
},
/**
* 触摸移动
* @param {*} event
*/
onEventMove(event) {
//世界坐标
let worldPoint = event.getLocation();
//console.log('move Move \n worldPoint=', worldPoint);
//跟随手指移动
let localPos = this.node.parent.convertToNodeSpaceAR(worldPoint);
this.node.position = localPos;
},
/**
* 触摸
* 当手指在目标节点区域外离开屏幕时
* 比如说,触摸node的size是200x200。
* 当超过这个区域时,就是触发这个事件
* @param {*} event
*/
onEventCancel(event) {
//世界坐标
//let worldPoint = event.getLocation();
//console.log('cancel Event \n worldPoint=', worldPoint);
},
/**
* 当手指在目标节点区域内离开屏幕时
* @param {*} event
*/
onEventEnd(event) {
//世界坐标
//let worldPoint = event.getLocation();
//console.log('end Event \n worldPoint=', worldPoint);
},
update(dt) {
},
onDestroy() {
}
});