Cocos Creator跟踪导弹的实现

start(){
this.GetPos();//先获取要攻击的位置
}
//获取目标位置
GetPos(){
//enemy[]这个数组里存放着被攻击的对象,跟踪导弹随机攻击
let m=enemy.length;
let n=Math.floor(Math.random()*m);//取随机数
this.target=enemy[n];//随机目标
console.log(this.target);
},
//跟踪导弹计算移动以及转向角度
Genzong(targetPosition){
var targetPoint =targetPosition;
var point = cc.v2(this.node.x, this.node.y);
var delta = targetPoint.sub(point);
var distance = point.sub(targetPoint).mag();
var x2 = point.x + this.speed * delta.x / distance;
var y2 = point.y + this.speed * delta.y / distance;
var newPosition = cc.v2(x2, y2);
var x1 = point.x;
var y1 = point.y;
var deltaRotation = 90 -Math.atan2(y2 - y1, x2 - x1) * 180 /Math.PI;
this.node.rotation=deltaRotation;
if(distance<=10){
return true;
}
this.node.setPosition(newPosition);//设置跟踪导弹的位置
},
update(dt){
this.speed = 2.3;//移动速度
this.Genzong(this.target.position);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值