美文网首页
【原】cocos2d-js触摸手势随意拖拽组件

【原】cocos2d-js触摸手势随意拖拽组件

作者: 紫荆逸 | 来源:发表于2017-06-06 14:30 被阅读244次

    用的cocos creator。最近本人写麻将拖拽出牌时需用到手势。自己简单的了解了下。(本人新手)。实现效果。拖拽一个组件到界面任意位置,组件随手指移动。

    cc.Class({

    extends: cc.Component,

    properties: {

    label: {

    default: null,

    type: cc.Label

    },

    // defaults, set visually when attaching this script to the Canvas

    text: 'Hello, World!',

    mySpri:{

    default:null,

    type:cc.Sprite,

    },

    myButton:{

    default:null,

    type:cc.Button,

    },

    },

    // use this for initialization

    onLoad: function () {

    this.label.string = this.text;

    this.addMJTouch(this.mySpri,this.mySpri.node.getPosition());

    this.addMJTouch(this.myButton,this.myButton.node.getPosition());

    },

    //添加触摸手势方法

    addMJTouch:function(touchMJSpri,MJOriPosition){

    var self=this;

    touchMJSpri.node.on(cc.Node.EventType.TOUCH_START,function(event){//开始触摸,也可以只写这一个。

    var temp = event.getLocation();

    var tempPlayer = touchMJSpri.node.parent.convertToNodeSpaceAR(temp)

    touchMJSpri.node.setPosition(tempPlayer);

    })

    touchMJSpri.node.on(cc.Node.EventType.TOUCH_MOVE,function(event){//移动中

    var temp = event.getLocation();

    var tempPlayer = touchMJSpri.node.parent.convertToNodeSpaceAR(temp)

    touchMJSpri.node.setPosition(tempPlayer) ;

    })

    touchMJSpri.node.on(cc.Node.EventType.TOUCH_END,function(event){//手指结束触摸

    var temp = event.getLocation();//全局坐标

    var tempPlayer= touchMJSpri.node.parent.convertToNodeSpaceAR(temp);//转化为局部坐标

    if(touchMJSpri==self.mySpri){

    touchMJSpri.node.setPosition(tempPlayer) ;//组件最终停留在手指终止的地方

    }else{

    touchMJSpri.node.setPosition(MJOriPosition) ;//组件停留在组件最初所在位置

    }

    })

    },

    // called every frame

    update: function (dt) {

    },

    });

    相关文章

      网友评论

          本文标题:【原】cocos2d-js触摸手势随意拖拽组件

          本文链接:https://www.haomeiwen.com/subject/esigfxtx.html