跟随鼠标移动

this.node.parent.on('touchmove',(event)=>{
    let removing = event.getDelta();
    let minX = -this.node.parent.width/2 + this.node.width/2 + 20;
    let maxX = -minX;
    let minY = -this.node.parent.height/2 + this.node.height/2 + 20;
    let maxY = -minY;
    let followWidth = this.node.x;
    if (this.node.x < minX){
        followWidth = minX;
    }
    if (this.node.x> maxX){
         followWidth = maxX;
    }
    let followHeight = this.node.y;
    if (this.node.y < minY){
        followHeight = minY;
    }
    if (this.node.y> maxY){
        followHeight = maxY;
    }
    this.node.setPosition(followWidth + removing.x, followHeight + removing.y);
 }
//_________________________________________________________________
this.targetMap.on('touchmove',(event)=>{
            let pre = event.getPreviousLocation();
            let cur = event.getLocation();
            var dir = cur.sub(pre);
            this.targetMap.x += dir.x;
            this.targetMap.y += dir.y;
            //判断左边距离
            var bgLeft = this.bg.x - this.bg.width / 2;
            var bgRight = this.bg.x + this.bg.width / 2;
            var bgTop = this.bg.y + this.bg.height / 2;
            var bgBottom = this.bg.y - this.bg.height / 2;

            var halfMapWidth = this.targetMap.width / 2;
            var halfMapHeight = this.targetMap.height / 2;

            //左边
            if(this.targetMap.x - halfMapWidth > bgLeft){
                this.targetMap.x = bgLeft + halfMapWidth;
            }
            //右边
            if(this.targetMap.x + halfMapWidth < bgRight){
                this.targetMap.x = bgRight - halfMapWidth;
            }
            //上边
            if(this.targetMap.y + halfMapHeight < bgTop){
                this.targetMap.y = bgTop - halfMapHeight;
            }
            //下边
            if(this.targetMap.y - halfMapHeight > bgBottom){
                this.targetMap.y = bgBottom + halfMapHeight;
            }
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。