![](https://csdnimg.cn/release/download_crawler_static/86343930/bg4.jpg)
1.2.1.3 C#构造函数
类可以具有参数化或参数较少的构造函数。创建类的实例时将调用构造函数。可
以 使 用 访 问 修 饰 符 和 类 名 来 定 义 构 造 函 数 : <access modifiers> <class
name>(){ }
这个说的是如何快速定义一个东西为一个特定的类。
二、重识地图
要编程,就要从数据结构的角度分析地图。
首先是[标题]这种,它在程序里相当于字典的索引,在程序中查找[标题],来读取内容。
然后是地图的注释,在 yrm 里,“;”是注释符号,
这一点从地图的开头就能看出:
注释是什么意思呢,就是告诉程序不要读这行。
然后是很关键的,[IsoMapPack5]和[OverLayPack]
可以看到它们的格式是……一堆看起来是乱码的东西。但很显然,这些“乱码“只包含 0~9、
a~z,A~Z 和+号和/号。
它们其实是 64 位编码!
附一下最初找到的资料,给了我很大帮助:
https://www.modenc.renegadeprojects.com/IsoMapPack5
http://www.shikadi.net/moddingwiki/Command_%26_Conquer_Tileset_Format
具体而言,是把地图的每一块 Tile 的参数合成一个 bytes 格式的串,然后再把所有 Tile 的串
合成一个总串,最后再把这个串压缩成 64 位编码。
这里我必须说一下,IsoMapPack5 使用的是 miniLZO 解压缩方法,而 OverLayPack 使用
的是 LCW 算法,也就是所谓的 format80 算法。这是很重要的信息。
1.3 关于本文的声明
本文内容源于 CNC_Maps_Renderer 开源项目的部分代码。