优化穿透子弹瞄准
背景
某些穿透型子弹弹道较粗,索敌又是以最近目标优先,因此经常“耿直”地锁定最近敌人,直接发送子弹,导致索敌看起来很呆,只命中很少的敌人。但是很多时候,目标周围有很多敌人,由于弹道较粗,只要稍微调整下发射角度就可以命中一堆敌人。
问题定义
穿透型宽弹道的子弹,可以看作一个矩形弹道,子弹起点 start (取 XZ 平面的二维坐标),初始方向 dir ,子弹射程 length ,子弹半宽 halfWidth ,给定主目标 targetEntity ,在保证主目标包含在这个矩形区域内,调整弹道角度,期望以覆盖更多敌人。
一开始会想针目标计算左右边界角度 [targetMinAngle, targetMaxAngle] ,然后以子弹起点为圆心,射程为半径进行怪物查询,查询后依次求得 [monsterMinAngle, monsterMaxAngle],但是这其中的关键点是角度,会频繁进行角度、三角函数、反三角函数的转换,这在定点数游戏里一方面性能开销较大,另一方面多次转换后误差也会叠加。
