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;
}
});
跟随鼠标移动
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。