6-12 创建连接区域的河道
在上一章中,我们声明了一个常量用来存储河床最低点的偏移量。在这一章中,我们要使用这个偏移量来构建连接区域。
首先回到HexMesh.cs
甲苯中,在这里有构建连接区域的方法。当我们构建地图单元的时候,获取其河流的状态。如果存在流入或者流出的河流,那么我们就修改中间顶点的高度。让其变为河床的最低点。代码如下:
1 | private void Triangulate(HexDirection direction, HexCell cell) |
通过上图我们发现,在连接区域产生了破面的情况。要填补这些破面,就要在进行三角构建连接区域的时候,同时要将相邻地图单元边上中央顶点的坐标也下降到相应高度。代码如下:
1 | private void TriangulateConnection(HexDirection direction, HexCell cell, EdgeVertices e1) |
现在,我们就可以通过按下鼠标左脚拖拽在地图上创建河流了。不过我们发现一个问题,就是河流穿过地图单元中央的时候,河流就收缩到一起了。这明显是不正确的,我们将会在接下来的章节修复这个问题。
[Github代码](