cocos 手柄移动小车

这个是实现手柄移动小车的js部分,具体素材就不上传了


按钮的js文件


cc.Class({
    extends: cc.Component,

    properties: {

        car:null,
        cat_js:null
    },

    // LIFE-CYCLE CALLBACKS:

    onl oad () {
        this.car=cc.find('Canvas/汽车')
        //方法1 获取车的 js 文件
       // this.car_js=this.car.getComponent('car')


        this.node.on('touchstart', this.ontouchstart, this)
        this.node.on('touchmove', this.ontouchmove, this)
        this.node.on('touchend', this.ontouchend, this)
        this.node.on('touchcancel', this.ontouchcancel, this)
    },
    ontouchstart(e){
        //cc.log('开始',e.getLocation())
    },
    ontouchmove(e){
        let fu=this.node.parent
        let newVec2 = fu.convertToNodeSpaceAR(e.getLocation()); //世界坐标,转换本地坐标


        let jiaodu=newVec2.normalize() //得到角度值
        let chang=cc.Vec2.distance(cc.v2(0, 0),newVec2) //两个坐标距离
        let max_r=99 //最大区域
        if(chang > max_r){
            newVec2.x=max_r * jiaodu.x
            newVec2.y=max_r * jiaodu.y
        }
        this.node.setPosition(newVec2)

        //用角度值,转换为,夹角
        let jiajiao=jiaodu.signAngle(cc.v2(1, 0))
        //由夹角转化为 弧度
        let hudu=jiajiao/ Math.PI * 180;
        //cc.log(333,this.car)
        this.car.angle=-hudu

        //设置 移动角度
        //方法1,设置角度
      //  this.car_js.fangxiang=jiaodu

        // 下面是方法2
        let pos= this.car.getPosition()
        pos.x+=jiaodu.x*3
        pos.y+=jiaodu.y*3
        this.car.setPosition(pos)


       // cc.log('移动',e)
    },
    move(){
        
    },
    ontouchend(e){
        this.node.setPosition(cc.v2(0, 0))
        //方法1 车停止运行
       // this.car_js.fangxiang=null
      //  cc.log('结束',e)
    },
    ontouchcancel(e){
        this.node.setPosition(cc.v2(0, 0))
        //方法1 车停止运行
       // this.car_js.fangxiang=null
      //  cc.log('中断',e)
    },

    start () {
        cc.log(7777);
    },

    // update (dt) {},
});

这个是车的js 文件


cc.Class({
    extends: cc.Component,

    properties: {
        fangxiang:null

    },
   // onl oad () {},
  //  start () { },
    update (dt) {

        if(!this.fangxiang){
            return
        }

        let pos = this.node.getPosition()

       pos.x+=this.fangxiang.x*3
        pos.y+=this.fangxiang.y*3

       this.node.setPosition(pos)
        //cc.log(new Date().getTime())
    },
});
上一篇:在Linux上安装MySQL


下一篇:VB 数据库操作实例:写入软件版本号(版本控制代码实现)