为什么现在打开蜂窝数据显示ee站的图片显示这样

前言:这是很久之前写游戏的时候想到的实现方法现在重新放上来。寻路算法写得好挫啊现在写的话肯定好看很多,但我懒得改了……

每个六边形地图都由许多六边形格子组成格子拥有的属性详见HexagonGrid的注释

如图这是一个5*4的地图,以中间那个格子为例有六个方向。

如果用二维数组表示各个格子的坐標如图,通过分析可知只需判断列的奇偶,就可以确定六个方向的坐标 

通过各个格子的权重,计算从某个格子到某个格子的最短路径 算法需要一个队列作为辅助,详细如下:

首先给定一个格子该格子入队。 当队列不为空 { 第一个格子出队将该格子标记。 按顺时针計算从该格子到该格子的六个方向所需的最短路程(weight),记录在该格子的TotalWeight中 按顺时针,该格子的六个方向入队 新建一个辅助队列,将原队列里有效的格子复制到新队列(超出边界或已标记的为无效格子)。 }

然后将上述算法以逆时针进行一遍函数返回一个HexagonMap的指针,该哋图的格子的TotalWeight即最短路程

例: 假设所有格子权重均为1,以(4,2)为起点则: 

因为算法原因所以从(4,2)到(4,2)的路程为2。

以上所有图片都是用QML画的

附仩github地址:(欢迎点赞^_^)

//格子二维数组(Queue应该为Vector)篇章有限,直接用Queue //因为封装的queue重载了[]运算符这直接用类似二维数组的方法访问元素

版权声明:本文为博主原创文章未经博主允许不得转载。 /qcx321/article/details/

网络出版服务许可证:(总)网出证(京)字第161号增值电信业务经营许可证:京B2- 马蜂窝客服:国内海外 +86-10-

我要回帖

更多关于 打开蜂窝数据显示e 的文章

 

随机推荐