追踪导弹的实现

本文介绍了追踪导弹的实现原理,核心在于不断计算导弹与目标之间的角度差。通过这个思路,可以编写相应的代码来实现导弹的精确追踪。
摘要由CSDN通过智能技术生成

追踪导弹的实现其实就是不断的计算导弹与目标的角度之差,过程如下图



有了上面思路就可以按以下代码实现

void Missile::update(float dt) {
	CCPoint targetPos = this->_target->getPosition();
	CCPoint p = this->getPosition();
		
	//计算导弹与目标的弧度
	float radian = atan2f(targetPos.y - p.y + this->_distance, targetPos.x - p.x + this->_distance);
	//将弧度转换为角度,因为cocos2d-x的角度旋转式按顺时针旋转,所以这里要将角度取反,
	//例如,以导弹的坐标为原点,目标在导弹的第一象限,那么不加负数则导弹会往第四象限旋转(因为是顺时针旋转),所以取反后,按逆时针旋转,就可计算出正确的旋转角度
	float targetAngle = -CC_RADIANS_TO_DEGREES(radian);
	//将角度按360度转换,得到目标旋转角度
	targetAngle = to360Angle(targetAngle);
	//导弹角度也按360度转换,得到导弹的当前角度
	float missile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值