位置: 编程技术 - 正文
推荐整理分享仿《文明》游戏制作日志3(模仿文明),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:我想看文明游戏,模仿文明的手游,文明仿写,模仿文明,模拟文明游戏,模仿文明的手游,像文明的游戏,模仿文明的手游,内容如对您有帮助,希望把文章链接给更多的朋友!
一、关于正方形转化为六边形问题。
延伸上次日志的方法,先生成一个矩形,然后通过简单地取中点和取四分点,构筑正六边形。然而遇到的问题是,高度数组是一个由离散的点组成,这些点组成的矩形肯定无法构筑一个正六边形。所以,直接生成矩形是无法做到的,只能还是回到将高度数组分成若干个小的正方形。
搜索一下“正方形内作正六边形”的问题,大概能给的答案是如下:
然而这并不是正六边形。想象一下,如果把左右两条边拉长适当的距离,内部的六边形肯定可以变成正的,实际上拉长至原来 2/√3 倍即可。令人兴奋的是,Unity的地形中,虽然高度图分辨率已经是固定的2^n1,但地形的长和宽是任意设置的,所以生成高度图的时候完全用正方形来构筑六边形,后期将地形长宽比例设置成2:√3即可得到正六边形。
二、构成地图
按照刚才的方法所生成的地图应该是这样的:
蓝色的正方形是一个 * 的小型高度图,它们相互嵌套,使得根据其生成的六边形组成整个地形。由于嵌套,每个小型高度图占总体高度图的长和宽是不一样的,由图可知,长占满,宽占。就是说,如果一个高度图分辨率为的地形,共有 / * / * 4/3 = 。这个对于一个中等的地图是偏小了。再延伸开去,由于分辨率只能是2的幂,所以更小一级地图子数目只能是,更大一级地图子数目,它们是一个比例为4的等比数列,这些都不是合适的。
有没有更好的构成方法?观察一下《文明》的地图,它是呈矩形的,是否可以将两张的地形合起来,*2 = 已经接近左右这个合适的了。合起来后的矩形长宽比例为4:2,这个“2”将来要拉长以形成正六边形,那么用这样方式形成的地形总体比例是√3:1= 1.。我们知道黄金比例2 / (√5-1) = 1.,1.已经是一个比较舒适的比例了。玩过《文明》的都知道,它里面的地形主要分两种:由一个大陆组成整张地图 和 两个大的州组成整张地图。对应这里的,不是就是两个地形各自生成自己的大陆,如果是前面的一种方式,就把两个的路连接起来,否则直接合并。想到这里,我更加肯定这个构成方法的正确性。
用刚才讨论的方法构成地图,分别用、、的地形构成小、中、大地图,子数目分别为、、还是没有摆脱比例为4的命运。一个解决方法是用更大一级的地形(小用,中用,大用),但用一部分。结果是小地图的子数目可以再~浮动,地图的尺寸更加灵活,也会有更多分级而不限于小、中、大。参考《文明》,中等地图大概有个子,对应的分辨率大概是*,它的更大一级可能是*2 = 子,对应分辨率为*。实际上,如果所有地图尺寸中的子数不超过,都可以用两个分辨率的地形表示。但是我找遍unity关于地形的接口,找不到一种方法用来“忽略”用不到高度图。
到目前为止生成地图的整体框架已经出来了。后面就是实现了。
unity5.0安卓开发环境配置 之前弄过这破玩意,后来从装了个系统,一切还原,自然辛苦配置的安卓环境也没有了。我这人还有点强迫症,喜欢式化硬盘,后果你懂的,所以就只
Unity项目中UI同学需知的程序相关要点 原文地址:
【VR】Leap Motion 官网文档 HandController(手部控制器) 前言:本系列译文是为迎合UnityVR的热潮与大家的学习需要,推出的针对Unity方向的LeapMotion官方文档中英对照翻译。本篇第五篇《HandController(手部控制
标签: 模仿文明
本文链接地址:https://www.jiuchutong.com/biancheng/377240.html 转载请保留说明!友情链接: 武汉网站建设