cocoscreator物体实时朝向移动目标

在坦克大战的敌人设计中,存在一个当敌人与玩家的距离小于某个设定值的时候,敌人就能发现玩家,然后去攻击玩家。这部分用到了物体实时朝向移动目标这一方法
  • 效果展示
    敌人实时朝向玩家
    代码实现:

cc.Class({
    extends: cc.Component,

    properties: {
        player:cc.Node,//不建议直接用挂载的方式,建议在onLoad里拿节点
    },

    // LIFE-CYCLE CALLBACKS:

    onLoad () {
    	this.initTime = 0;
		//this.player = cc.Find("Canvas/Bg/tank");//建议使用这种方法拿到节点,
	},

    start () {

    },

    update (dt) {
    	this.initTime++;
    	//判断player和enemy节点距离,并且60帧才进行一次实时朝向的判断
    	let playerPos = this.player.convertToWorldSpaceAR(cc.v2(0, 0));
    	let thisPos = this.node.convertToWorldSpaceAR(cc.v2(0, 0));
    	if((Math.abs(playerPos.x - thisPos.x) < 300 && Math.abs(playerPos.y - thisPos.y) < 300)&&this.initTime>60){
			let r = Math.atan2(playerPos.y - thisPos.y, playerPos.x - thisPos.x);
        	let degree = r * 180 / Math.PI;
        	degree = 360 - degree;
        	degree = degree - 90;
        	this.node.angle = -degree;
        	this.initTime = 0;
		}
		
	},
});


  • 将上述脚本挂载到敌人预制体上,敌人动态生成,在onLoad里根据路径加载this.player,不用每个敌人节点都去挂载物体。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蟹 !

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值