这次需要加入跟踪导弹的功能
跟踪导弹,要朝向目标,逐渐接近
目标改变位置导弹要随时更新
update (dt) {
this.Genzong(this.plane.position);
this.AngleChanger(this.plane.position, this.missile); // 朝向,上篇笔记
},
//跟踪导弹计算移动以及转向角度
Genzong(targetPosition){
var targetPoint =targetPosition; // 目标位置
var point = cc.v2(this.missile.x, this.missile.y); // 导弹自身位置
var delta = targetPoint.sub(point);
var distance = point.sub(targetPoint).mag(); // 计算目标和导弹的距离
var x2 = point.x + 2 * delta.x / distance; // 这里的 2 影响了导弹速度
var y2 = point.y + 2 * delta.y / distance;
var newPosition = cc.v2(x2, y2);
if( distance < 3){
cc.log("=== 导弹命中 boom ===")
return;
}
this.missile.setPosition(newPosition);// 更新跟踪导弹的位置
},