cocos-creator學習筆記2(觸摸屏幕,鼠標鎖定控制節點移動)

觸摸控制就是我們常在手機上用手按住屏幕上的某物體拖動的實現
1.首先:
在onLoad裏面打開對觸摸或者鼠標鎖定的控制開關
這裏的hero是我創建的節點,你們用什麼節點就替換成相應的節點就可以
在這裏插入圖片描述
2.接下來開始編寫onTouchMove函數了
在這裏插入圖片描述
event是接受控制的事情。
順帶學習一下getLocation()這個函數,查看API如下,返回一個二維座標
在這裏插入圖片描述
在這裏插入圖片描述

getDelta() 函數的API如上,返回也是一個二維座標。
接下來這兩個貌似沒什麼大作用,但最好加上,這人可以讓程序避免一下意外的錯誤
在這裏插入圖片描述

完整代碼:(將hero換成你們要實現監控的節點就可以)


cc.Class({
    extends: cc.Component,

    properties: {
       //bj_1:cc.Node,
       //bj_2:cc.Node,
       hero:cc.Node,
       //bullet:cc.Prefab,
    },

    onLoad () 
    {
        //this.bullet_sx=0;
        this.hero.on(cc.Node.EventType.TOUCH_MOVE,this.onTouchMove,this) 
        //手指按下時開始監控
        this.hero.on(cc.Node.EventType.TOUCH_END,this.onTouchEnd,this);
        //手指鬆開時終止監控
        this.hero.on(cc.Node.EventType.TOUCH_CANCEL,this.onTouchCancel,this);
        //終止對該事件監控
    },
    onTouchMove(event){
       var oldPos = event.getLocation();
       //console.log(oldPos,this.role.x,this.role.y);
       var delta = event.getDelta();
       this.hero.x += delta.x;
       this.hero.y += delta.y;
    },
    onTouchEnd:function(){
        cc.log('觸摸結束');
    },
    onTouchCancel:function(){
        cc.log('觸摸取消')
    },
   /* MoveBj:function(){
        this.bj_1.y -= 8;
        this.bj_2.y -= 8;
        if(this.bj_1.y <= -this.bj_1.height)
            this.bj_1.y = this.bj_1.height;
        if(this.bj_2.y <= -this.bj_1.height)
            this.bj_2.y = this.bj_1.height;*/
    },
   /* CreateBullet:function(){
        var Bullet = cc.instantiate(this.bullet);
        this.node.addChild(Bullet);
        Bullet.setPosition(this.hero.x,this.hero.y + this.hero.height/2+10);
        //Bullet.getComponent('bullet').game = this;
    },*/
    update (dt)
    {
        /*this.bullet_sx++;
        if(this.bullet_sx >= 16)
        {
            this.CreateBullet();
            this.bullet_sx=0;
        }
        this.MoveBj();   //主遊戲場景輪番移動的函數*/
    },
});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章