游戏车辆固定转向轨迹计算
概述
车辆游戏是我们经常接触到的一类游戏,这里游戏在只用键盘操作时,往往非常不方便。这是因为这一类游戏大部分都是按下按键时转向,释放按键时方向就会自动转正。这种控制方式在实现方面比较容易。但是缺点也很明显,就是无法像现实中开车一样,我固定一个转向角度来做圆周(圆弧)运动。对于在弯道时,键盘的操作体验非常糟糕。
所以,就想到,采用转向角度来控制车辆转弯,挡位来控制速度(包括前进和后退)。这样的话,当按下左键时,车辆将一直按照一个拐弯角度来运行,在按下其他键之前,车辆将一直进行圆周(圆弧)运动。这中操作方式和现实比较接近,就像我们开车转弯后,必须回正方向盘一样。但是这种的程序实现起来稍微复杂一些,经过研究,特此公布车辆轨迹计算方法。
效果
这是效果展示:
2023-04-27 10-17-43
计算
几何概念
这里仅考虑2D环境下,正如我另外一篇文章所述,三角函数的天然局限性并不能很好的满足在整个圆周下的相互计算。简言之就是在0到360度范围内,存在一个三角函数值对应2个角度的问题。故我们需要自己解决该问题,不能简单的利用三角函数反算。解决途径两种如下:
- 自己编写全角函数;
- 利用复数计算;
这两种方式的关键就是三角函数值不再用一个数字表示,而是采用两个数值表示。
位置计算
已知一个车辆的当前角度、转弯角度,和速度值,从理论来讲可以计算出它在任意时刻的准确位置和方向。
固定思维如下:
- 确定下一个位置刷新时间
- 利用速度和时间求导弧长
- 利用刷新时间求导刷新后转向角度
- 利用弧长和转向角度、起始点位置