导弹改革-根据夹角改变转向力量
2019/07/041000 浏览游戏开发攻略
前几天看到论坛有人说导弹总是绕圈打不到人,寻求一个精准的导弹,同时我自己做的导弹性能也不太好,昨天想了一个下午,就有了这么一个东西



飞行过程平稳,甚至可以当做浮游炮


转向速度高,同时回转半径小,亲测这个导弹可以拦截别的导弹
﹌﹌﹌﹌﹌﹌
首先要有一个能用的导弹



(这里忘记关掉战车无敌了)
然后需要一些改造

前进的方向上放几个带阻力机翼,并把推进用喷射器力量调到合适位置(目的是消除惯性,能做到按下喷射器就走,松开立马停住最好,测试时发现没有这个时,导弹如果短时间内转太大角度,会出现“刹不住”这样的情况)(为了方便看清,阻力机翼染成了红色)

最好在导弹的重心处放一个反重力,力量数值最好能让导弹悬浮,注意升力不能大于导弹重力
*反重力不用正好在重心,差不多就可以
**反重力不放也能用,但性能会受到一点影响


在导弹身上放两个能取坐标的零件,要求两零件不重合且一个放在头部一个放在尾部,一般用激光和尾流的零件就行,没有尾流用推进喷射器代替也可以
﹌﹌﹌﹌﹌﹌﹌
以上为导弹本体,以下为思路以及代码

这张图为例,绿点代表敌人,红箭头代表导弹,箭头朝向代表导弹朝向
算出紫色的角度,用这个角度来设置转向喷射器的力量即可
*这两种算法效果都一样,用哪个都可以

这张为左图的代码,需要用180减去算出的角度才可以,不然导弹会背对着敌人

这张是右图,不需要拿180减去算出的角度
*两者都需要把算出来的角度缩放一下再设置成转向喷射器的力量,缩放倍数要自己试,不是越大越好
﹌﹌﹌﹌﹌﹌﹌
关于本导弹
*它在与敌人夹角很大时转向喷射器力量会非常大,导弹如果装在自己车上,建议加个延时装置,先飞出多少距离再开启激光,防止导弹卡在自己身上/导弹炸自己
**这个代码用三维坐标系算出的角度去设置导弹的喷射器力量,不太合理,但实测只是在瞄准时可能鬼畜一下,无其他影响
﹌﹌﹌﹌﹌﹌
题外话

如果导弹还是打不中人,建议直接用这个…代码非常简单,取敌我坐标,算距离,当距离小于一定数值之后爆炸,只要炸弹范围够大就一定能炸中(ಡωಡ)
﹌﹌﹌﹌﹌﹌﹌
最后,文章讲解可能不太清楚,有任何问题可询问,有时间会回复
一二楼放代码