cocos creator 鼠标跟随朝向总结

//此文是日常用到的一些获取点击,跟随,位移,朝向与两点之间的距离总结
this.startPos = cc.v2(0, 0); //开始位置
this.endPos = cc.v2(0, 0); //结束位置

//获取点击的位置
this.node.on(cc.Node.EventType.TOUCH_START, function (event) {
this.startPos = cc.v2(event.getLocation().x, event.getLocation().y);
cc.log("起始坐标点:x = " + event.getLocation().x + ", y = " + event.getLocation().y);
}, this);
//物体跟随点击点
this.node.on(cc.Node.EventType.TOUCH_MOVE, function (event) {
var delta = event.touch.getDelta();
this.node.x += delta.x;
this.node.y += delta.y;
},this);

this.node.on(cc.Node.EventType.TOUCH_END, function (event) {
this.endPos = cc.v2(event.getLocation().x, event.getLocation().y);
cc.log("终点坐标点 x :" + event.getLocation().x + ", 终点坐标点 y :" + event.getLocation().y );
let distance = this.startPos.sub(this.endPos).mag();
cc.log("移动距离 :" + distance);
}, this);

//朝向1--跟随鼠标转动
let direction = this.endPos.sub(this.startPos).normalize();
var radian = direction.signAngle(cc.v2(1,0));
//将弧度转换为欧拉角
var angle = radian / Math.PI * 180;
this.bar.angle=-angle;

//朝向2--朝向目标点
var dx = this.magnetCard.x - target.x;
var dy = this.magnetCard.y - target.y;
var dir = cc.v2(dx, dy);

//根据朝向计算出夹角弧度
var angle = dir.signAngle(cc.v2(1, 0));

//将弧度转换为欧拉角
var degree = angle / Math.PI * 180+90;

// target.rotation = degree;

//两点之间距离
let worldPos = e.getLocation();
let localPos = this.node.convertToNodeSpaceAR(worldPos);
this.endPos = cc.v2(localPos.x, localPos.y);
let distance = this.startPos.sub(this.endPos).mag();
console.log("--Move:",this.endPos,distance)
this.bar.width=distance;

posted @ 2021-02-05 11:32  zhuheNiu  阅读(1217)  评论(0)    收藏  举报