【原】cocos2d-js觸摸手勢(shì)隨意拖拽組件

用的cocos creator。最近本人寫麻將拖拽出牌時(shí)需用到手勢(shì)。自己簡單的了解了下。(本人新手)。實(shí)現(xiàn)效果。拖拽一個(gè)組件到界面任意位置,組件隨手指移動(dòng)。

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());

},

//添加觸摸手勢(shì)方法

addMJTouch:function(touchMJSpri,MJOriPosition){

var self=this;

touchMJSpri.node.on(cc.Node.EventType.TOUCH_START,function(event){//開始觸摸,也可以只寫這一個(gè)。

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){//移動(dòng)中

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){//手指結(jié)束觸摸

var temp = event.getLocation();//全局坐標(biāo)

var tempPlayer= touchMJSpri.node.parent.convertToNodeSpaceAR(temp);//轉(zhuǎn)化為局部坐標(biāo)

if(touchMJSpri==self.mySpri){

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

}else{

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

}

})

},

// called every frame

update: function (dt) {

},

});

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.除了方法, 其他東西都要扔到properties里面了, 并且要給出屬性的默認(rèn)值或者屬性的存取的方法 1) 首...
    視掘閱讀 1,417評(píng)論 0 0
  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象,但只有一個(gè)實(shí)例,加載時(shí)并不主動(dòng)創(chuàng)建,需要時(shí)才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,320評(píng)論 1 10
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,131評(píng)論 2 17
  • 最近幾天發(fā)生了幾件事: 1、我的一個(gè)朋友要調(diào)到別的地方去工作了。 2、失散多年的一個(gè)小學(xué)同學(xué)最近突然聯(lián)系上了。 3...
    方邪閱讀 358評(píng)論 0 1
  • 遇見了,就是遇見了 從此你的生命里 就會(huì)留有我來過的痕跡 我亦如此 曾經(jīng)的耳鬢思語 纏意綿綿 如果有一天——沒了 ...
    留園一夢(mèng)閱讀 278評(píng)論 0 0

友情鏈接更多精彩內(nèi)容