六边形格子地图|六边形格子地图 数据结构和寻路
最近做了个跳棋小游戏,于是接触了一下六边形的东西,简单记录一下
六边形格子地图,坐标为数据结构大概可以抽象为
文章图片
每个棋子的位置为
position = cc.v2((x +(y % 2 == 0 ? 0 : 0.5) )* gridWidth , y * gridHeight);
?
文章图片
再抽象一下
文章图片
每两个格子的寻路步数为
getDistance: function (from, to) {
let dx = to.x - from.x;
let dy = to.y - from.y;
var lucky = dx > 0 ^ from.y % 2 == 0;
var xOffset = lucky ? Math.ceil(Math.abs(dy / 2)) : Math.floor(Math.abs(dy / 2));
var step = xOffset >= Math.abs(dx) ? Math.abs(dy) : (Math.abs(dy) + Math.abs(dx) - xOffset);
return step;
}
————————
想要学习Cocos的同学,欢迎关注我的零基础Cocos教程
【六边形格子地图|六边形格子地图 数据结构和寻路】https://ke.qq.com/course/313749
推荐阅读
- 拿着旧地图,找不到新大陆
- 地图|地图 旅行 菜系
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- 百度地图多边形时候射线问题2018-09-01
- 安全资讯(2018.7.09)
- 地图|高德地图清除指定覆盖物 自定义覆盖物样式(完整dome)
- Android|莫名Crash---目睹Baidu地图API之怪现象一
- 请打开这本中国网球地图
- Vue中使用百度地图
- 宋格子