上QQ阅读APP看书,第一时间看更新
1.14 预测抛射体的着地点
当抛射体被玩家射中之后,agent(AI)要么躲开,要么朝向它。例如,agent需要躲开手榴弹才能存活,或者朝着一个足球跑过去抢夺控制权。不论哪种情况,预测抛射体的着地点去做决策对于agent都是很重要的。
在本节中,我们将学习如何计算着地点。
准备工作
在预测着地点之前,知道它距离着地(或到达某个位置点)的剩余时间很重要,不用创建新的行为,只需要更新Projectile类即可。
操作步骤
1. 添加GetLandingTime函数以计算着地时间:
2. 然后添加GetLandingPos函数以预测着地点:
运行原理
首先,解出前一节中的方程式以得到一个固定高度,然后根据抛射体当前的位置和速度,从而得到抛射体到达给定高度的时间。
延伸阅读
注意对NaN值的验证。因为这个方程式的结果可能是2个、1个或无解。另外,当着地时间小于0时,意味着抛射体不可能到达目标高度。