之前的日志中,已经初步实现了单位的移动功能,但移动路径的计算十分死板,也没有多段移动的功能。于是就添加一下移动的中转功能。现在移动可以通过中转命令多步计划了。鼠标右键则可以撤销上一步选择的路径。
在为单位下达移动命令的同时,也可以通过一个六向按键来调整单位的面向,这就是面向机制的基础呈现啦。(转向效果粗糙至极,原谅我,以后会慢慢优化的 ><||)
单位会转向之后。就要详细讲一讲面向的区别了。单位的面向方向当然就是一个六边形单元格的某一边。对于一个单位而言,其正面以及该面相邻两面的方向就是“正面”,单元格的另外三面方向就是“背面”,此外在两个区域之间有一个中间区,就是“侧面”了。
之后的战斗机制中,不同方向的攻击所造成的伤害会有很大的区别。机动性强的单位将会具有相当的威胁,将单位集中部署组成一定的“阵型”,互相掩护脆弱的侧后方也就变的必要了。
制作面向机制时,我发现使用两个坐标描述六边形网格的单元格并不十分方便,于是引入了第三个坐标。描述起来还是有一些理解成本的,简单的来说就是将闯过六边形各两面的三条轴线看作是坐标轴,将原来二维的坐标稍作一定的计算就能转换为下图的样式。(这个转换过程完全照抄了第一篇日志分享过的文章,站内也有翻译:https://indienova.com/indie-game-development/hex-map-part-1/)
这种三维的坐标系有一个极好的性质,就是 X+Y+Z=0 ,即单元格的三个坐标之和必为0。这就给寻找单元格的邻居、判断单元格在单位的哪个方向、判断两个单元格之接的间隔数量等等常用的单元格逻辑处理提供了方便。比如可以通过以下公式判断两个单元格A与B的距离:(|A.x-B.x|+|A.y-B.y|+|A.z-B.z|)/2。根据这个公式也可以通过(|A.x-B.x|+|A.y-B.y|+|A.z-B.z|)/2=distance来获取A单元格在distance范围内的邻居B们的坐标。
以上就是近期的开发内容了。最近看到了许多玩法十分独特的游戏日志,让我不禁有种选择了一个笨重的制作题材的想法。不过,开发本来就是做自己喜欢的游戏嘛!随着游戏基础流程的逐渐实现,我也会加入更多独特的机制,来制作一个稍显“独特”的策略游戏!许多效果的实现粗糙简陋,十分感谢你能看到这里!最近一段时间很忙,摸鱼时候看了不少敌人AI的实现方式,但愿不要多久就能发出下篇敌人AI的日志吧!
要是对这个项目有兴趣,或者有什么建议的话,欢迎联系我哦! QQ:2763686216
暂无关于此日志的评论。