新年后上班第二天 寻路算法基础研究
新年来后,突然觉得自己还有很多很多东西需要学习,鉴于自己最近遇到的一些事情,打算先研究一下NPC寻路算法这一块,昨天经过多方查找资料得知A*算法比较常用,经过一番研究,大致弄明白了算法的意义,然后多做了一点点研究,并没有从代码看,而是从几何学简单分析了一下。
平面铺设图形有哪些
-
通过多边形公式360 / x = (n-2) * 180 / n 可得(x为几个角可以构成360度,n为正多边形边数)
3种多边形可以平铺地形(2d平面地形):
正三边形
-
等边三角形
等边三角形如果用于寻路的话,那人物行走的时候方向判定如果以垂直每一条边判定,则人物会不断旋转进行调整角度,在游戏制作中可能会比较怪,但是距离应该试用曼哈顿距离的变形体,相对比较容易。
如果用垂直边与朝向顶点,则会完成六边形所完成的东西,但是距离试用的为切比雪夫距离,相对反而麻烦了一点。
正四边形(正方形)
-
长方形
好像没见到有用长方形做寻路的,猜测应该会用在比较特殊的地形中,曼哈顿距离,相对简单,也可以用切比雪夫距离。
-
正方形
对于简单的的寻路,可以用正方形,比如格子很明显的的方格地形,或者一些demo中测试时使用,曼哈顿距离,相对简单,切比雪夫距离(国际象棋国王与皇后)。
正六边形
-
正六边形
不知道是不是现在最常用的,变体曼哈顿距离,几乎包括所有面,如果有可能的话,建议使用。