制作地图比引入规则引擎更有挑战性,这在一定程度上已经超出了我的知识范围。
制作地图的预期是六边形地图(受文明荼毒颇深),通过高度来标识不同的地形,再增加附属属性以确定地图上的附属内容。
经过一番查找终于找到了实现方案。
使用 Cube 坐标系进行每个单元格的坐标定义,方便进行后续的计算。
使用 CSS3 的 clip-path 方法裁剪 div 使其表现为正六边形。
通过一系列的转换,将坐标转换为 CSS 绝对定位,一幅简单的正六边形地图就展示在界面中了。
再为单元格加上海拔属性,其数据结构如下:
export interface Cube { x: number; y: number; z: number; } export interface Cell { cube: Cube; altitude: number; }
本打算通过随机的方法调整每个单元格的海拔高度,结果染色后发现整个地图凌乱不堪,高低海拔没有任何的缓冲过程,可信度极差,接下来需要寻找一个合适的算法来处理这个问题。
暂无关于此日志的评论。