难点主要是如果获取一个六边形格子相邻的六个格子,在实际开发中有个简单取巧的方法,

思路:把正四边形变成平行四边形,然后把六边形格子放入平行四边形的直角坐标系中就成了六边形地图。即产生地图时可以按正四边形的方式产生,UI显示地图时按平行四边形的方式显示,这样玩家看到的地图就是六边形地图了。

根据以上思路 ,一个取相邻6个格子的关键函数,可以这样简单的实现:

--参数(x,y)为六边形格子中心点坐标
getAdjacenGrids = function(x,y)
local xyList = {
{x, y + 1},--左上角格子
{x, y - 1},--右下角格子
{x + 1, y},--左边格子
{x - 1, y},--右边格子
{x - 1, y - 1},--左下角格子
{x + 1, y + 1},--右上角格子
}
return xyList
end

游戏六边形地图的实现_实际开发