一、关于正方形转化为六边形问题。

延伸上次日志的方法,先生成一个矩形,然后通过简单地取中点和取四分点,构筑正六边形。然而遇到的问题是,高度数组是一个由离散的点组成,这些点组成的矩形肯定无法构筑一个正六边形。所以,直接生成矩形是无法做到的,只能还是回到将高度数组分成若干个小的正方形。

搜索一下“正方形内作正六边形”的问题,大概能给的答案是如下:

然而这并不是正六边形。想象一下,如果把左右两条边拉长适当的距离,内部的六边形肯定可以变成正的,实际上拉长至原来 2/√3 倍即可。令人兴奋的是,Unity的地形中,虽然高度图分辨率已经是固定的2^n+1,但地形的长和宽是任意设置的,所以生成高度图的时候完全用正方形来构筑六边形,后期将地形长宽比例设置成2:√3即可得到正六边形。

二、构成地图

按照刚才的方法所生成的地图应该是这样的:

蓝色的正方形是一个16 * 16的小型高度图,它们相互嵌套,使得根据其生成的六边形组成整个地形。由于嵌套,每个小型高度图占总体高度图的长和宽是不一样的,由图可知,长占满16格,宽占12格。就是说,如果一个高度图分辨率为513的地形,共有 512/16 * 512/16 * 4/3 = 1365。这个值对于一个中等的地图是偏小了。再延伸开去,由于分辨率只能是2的幂,所以更小一级地图格子数目只能是341,更大一级地图格子数目5460,它们是一个比例为4的等比数列,这些都不是合适的值。

有没有更好的构成方法?观察一下《文明》的地图,它是呈矩形的,是否可以将两张513的地形合起来,1365*2 = 2730已经接近3500左右这个合适的值了。合起来后的矩形长宽比例为4:2,这个“2”将来要拉长以形成正六边形,那么用这样方式形成的地形总体比例是√3:1= 1.73。我们知道黄金比例2 / (√5-1) = 1.618,1.73已经是一个比较舒适的比例了。玩过《文明》的都知道,它里面的地形主要分两种:由一个大陆组成整张地图两个大的州组成整张地图。对应这里的,不是就是两个地形各自生成自己的大陆,如果是前面的一种方式,就把两个的路连接起来,否则直接合并。想到这里,我更加肯定这个构成方法的正确性。

用刚才讨论的方法构成地图,分别用257、513、1025的地形构成小、中、大地图,格子数目分别为682、2730、10922还是没有摆脱比例为4的命运。一个解决方法是用更大一级的地形(小用513,中用1025,大用2049),但用一部分。结果是小地图的格子数目可以再257~2730浮动,地图的尺寸更加灵活,也会有更多分级而不限于小、中、大。参考《文明》,中等地图大概有3500个格子,对应的分辨率大概是580*580,它的更大一级可能是3500*2 = 7000格子,对应分辨率为820*820。实际上,如果所有地图尺寸中的格子数不超过10922,都可以用两个1025分辨率的地形表示。但是我找遍unity关于地形的接口,找不到一种方法用来“忽略”用不到高度图。

到目前为止生成地图的整体框架已经出来了。后面就是实现了。

仿《文明》游戏制作日志3相关推荐

  1. 【RPG Maker MZ】独立游戏制作日志①

    目录 前言 二.游戏制作前的准备 1.软件准备 2.素材准备 3.背景故事构思 4.游戏流畅构思 三.优化游戏的部分 1.强大的光影插件--ShoraLighting 2.统一的像素风格素材 写在最后 ...

  2. 【RPG Maker MZ】独立游戏制作日志③

    目录 此次的进度 详细内容 根据游戏流程创建同一场景的多个副本以便于管理 交涉 设定影响交涉结果的条件: 设定可选的选项: 设定后续选项以及回路 判定交涉结果: 结尾 此次的进度 OK,时间过的很快, ...

  3. discuz仿文明争霸游戏官网模版

    介绍: discuz仿文明争霸游戏官网模版,商业版UTF8版.包含门户首页论坛页,帖子列表页和帖子内容页.首页数据采用diy方式调用方便站长编辑.模板风格简约大气,兼容各主流浏览器. 网盘下载地址: ...

  4. Discuz仿文明争霸游戏官网模版/Discuz游戏官网门户网站模板

    ☑️ 编号:ym295 ☑️ 品牌:Discuz ☑️ 语言:php ☑️ 大小: ☑️ 类型:仿文明争霸游戏官网 ☑️ 支持:pc+wap

  5. HTML5期末大作业:仿阴阳师游戏网站设计——仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板

    HTML5期末大作业:仿阴阳师游戏网站设计--仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板 常见网页 ...

  6. div+css静态网页设计游戏网站设计——仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板

    HTML5期末大作业:仿阴阳师游戏网站设计--仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板 常见网页 ...

  7. Galgame研发日志:独立游戏制作前应当进行的第一步

    各位独立游戏开发者,尤其是初心者,我强烈建议在游戏开发之前首先写一份详尽的企划书来帮助自己梳理思路.游戏的发起可以源自于一个模糊的想法和概念,而游戏的实现则是一件系统性工程,丝毫浪漫不得. 在完成这份 ...

  8. 福州大学特大游戏制作团伙-冲刺日志(第10天11.24)

    这个作业属于哪个课程 fzusdn社区-CSDN社区云 这个作业要求在哪里 团队作业-alpha冲刺-CSDN社区 团队名称 福州大学特大游戏制作团伙 这个作业的目标 整合得出游戏的alpha版本 进 ...

  9. 福州大学特大游戏制作团伙-冲刺日志(第9天11.23)

    这个作业属于哪个课程 fzusdn社区-CSDN社区云 这个作业要求在哪里 团队作业-alpha冲刺-CSDN社区 团队名称 福州大学特大游戏制作团伙 这个作业的目标 通过ui与道具优化游戏体验,导出 ...

最新文章

  1. linux kernel 最新版本,linux kernel 最新版本4.10正式发布 附下载地址
  2. 如何用python绘图、柱形图、线形图等_python使用Plotly绘图工具绘制散点图、线形图...
  3. 机器学习实战(用Scikit-learn和TensorFlow进行机器学习)(三)
  4. python游戏代码运行不了_无法使我的tic tac toe游戏在python中正确运行
  5. Java多线程系列(四):4种常用Java线程锁的特点,性能比较、使用场景
  6. java 数据纠错,纠错码简介
  7. 教你轻松计算AOE网关键路径(转)
  8. wincc和matlab通信,Matlab与WinCC之间的数据通信.doc
  9. CSS中的position 和z-index
  10. python学习笔记(1) - python操作mysql数据库【持续更新中...】
  11. Python 把月销售目标按天数分解成日销售目标
  12. Java是有法_20191122-Java的基本语法
  13. 2021年蓝桥杯CC++大学B组
  14. 【论文阅读】DeepIM: Deep Iterative Matching for 6D Pose Estimation
  15. 有了天猫精灵智能套组,享受管家级别智能服务
  16. 完全卸载 Minikube/Uninstall Minikube[ Linux 和 Mac]
  17. 用python画好看的圣诞树
  18. 在Windows下开发调试PySpark
  19. 今天成功刷了我的E680G!
  20. spad dtof lidar车载IMX459更新系列四深度传感器进化为激光雷达

热门文章

  1. 最大公约数、最小公倍数算法思想
  2. prezi中文输入方法
  3. 基于AM57x的GigE工业相机图像采集案例TL5728-IDK开发板
  4. M站底部固定悬浮导航代码分享
  5. 高德地图自定义Marker显示文字
  6. vlan的基本指令_思科交换机命令(vlan相关)
  7. 人防消防给水排水和灭火设备
  8. 四川智茂:拼多多个人店铺要缴税吗
  9. Win10 EFI启动文件被删的修复办法
  10. 站长利器,全自动采集发布,开源免费-蓝天采集器-教程(1-简介)