游戏引擎中的寻路部分最主要由两大部分组成:寻路,路径平滑处理。确定起始点位置有两种方法:1. 最简单的方法:设置一个起点,一个终点;2. 设置脚印,即设置一连串的点,求出一条最短路径将这些点连起来。本文以第一种方法为例讲解,场景为DirectX中的三维地形。
(1) 获取起点,终点:通过拾取获取鼠标在三维中指定点的位置
(2) 寻路:本文的思路是,将起点和终点所在的地形格子 在顶点缓冲区的索引求出来,用寻路算法(A*,遗传算法,神经网络等,本文使用A*算法)得到路径,路径的格式为list<int>,保存的是索引。
(3) 路径平滑处理:平滑处理时,首先将上一步求得的list<int>转换为在地形中的位置list<D3DXVECTOR>,然后做Bezier曲线,将list中的元素作为控制点。