|
SimCity4大地图DIY
<!--quote-BB_RoBuST[2++--><div class='quotetop'>引用:( BB_RoBuST[2 )</div><div class='quotemain'><!--quote1-->,2005-05-21 11:50,pid65143]
<br />SimCity4大地图DIY
<br />——liangjiayu翻译
<br />在模拟城市4里面,玩家可以自己建造新的大地图,但是生成的大地图是一片空白的,如果要建造地形,得要进入各个城市单元去制造地形,而且城市单元的大小和位置也不受控制,但是模拟城市4提供了一种方法,允许玩家自行定义大地图的各项地形参数。
<br />在大地图里面,大型的城市单元边长规定为4千米,中型城市单元边长为2千米,小型城市单元边长为1千米。首先你要确定你创造的大地图有多大,这里以建造一个边长12千米的大地图为例,模拟城市程序规定大地图边长一定要是整数,所以不会有类似13.56千米边长的大地图出现。
<br />确定了大地图的大小之后,我们就要生成一个灰度位图来代表地形,在位图里面,越接近白色代表海拔越高,完全黑色代表海底,而海平面高度则为83灰度左右(0~255)。
<br />具体大地图生成步骤:
<br />1、首先做一个算术,就是大地图边长(千米)×64 + 1,得出灰度图的象素边长,例如,12千米边长的大地图,就是12×64+1=769,我们要生成的灰度位图边长就是769个象素。
<br />2、打开PhotoShop(或者其他你喜欢的工具),建立一个新的正方形位图,边长为769个象素,根据前面说的在photoshop里面绘制你想要的“地形”,可以利用“分层云彩”滤镜,最后形成像这样的一张图片: 图中白色代表高处,黑色代表低处,最后把图片存为8位的bmp格式灰度图,命名为terrain.bmp。
<br />3、然后创造一张城市单元划分图,由于我们创造的大地图边长为12千米,所以城市单元划分图的边长为12个象素,用不同的颜色来代表不同的城市单元。例图如下:
<br />上图中斜线代表大型城市单元,应填充蓝色系的颜色;交叉线代表中型城市单元,应填充绿色系的颜色;十字线代表小型城市单元,应填充红色系的颜色。最后把图片存储为24位的bmp格式图片,一定要命名为config.bmp。
<br />4、这时候我们就有两张图片了,一张是灰度图(769象素),一张是彩色图(注意是12象素哦)。进入模拟城市4,新建一个大地图,命名为newland,然后退出,在My Documents/SimCity 4/Regions目录下会见到有一个newland命名的目录,把刚才生成的config.bmp复制到这个目录下。
<br />5、再次进入模拟城市4,随便选另一个大地图,然后再选回newland这个大地图,这样程序就会发现并使用config.bmp这个城市单元划分文件,你会发现newland的城市单元分布已经按你的规划改变了。
<br />6、然后,按“Ctrl+Shift+Alt+R”,会弹出一个对话框,选择载入刚才制作的灰度地形图terrain.Bmp,然后程序就开始逐个城市单元地生成地形(耗时较长)。 大功告成!你会看到整个大地图都是按你的设计而生成的了。用这个方法,我们可以随意很容易地生成各种各样陆地形状的大地图,就看你的创意了。<!--quote2--></div><!--quote3-->
<br />提示一下,您說的有點出入
<br />大地圖邊長應為4096米,而非4000米。
<br />大地圖邊長=256格=4096米(每格16米)
<br />我們在做灰度圖的時候,像素是每格配一個像素,整張地圖再加1,若邊長是12288米(4096乘以3)的大地圖,那麼就是256乘以3再+1,就是769。
<br />
<br />您的算法不論來源來自哪,雖與這算法不同,但得出的結果是一樣的,哈,都是769。但這算法比您的算法更好理解,就是為每個格子配一個像素就對了。
<br />
<br />每張大地圖=256格=4096米=256像素
<br />每張中地圖=128格=2048米=128像素
<br />每張小地圖=64格=1024米=64像素
<br />整張地圖看邊長是多少格,最後再加1即可,例如邊長為4096乘5的地圖,最後每邊像素是20481。
<br />
<br />您辛苦了,謝謝,希望樓主能有所修正。 <img src='images/smiles/em253.gif' smilietext=':em253:' border='0' style='vertical-align:middle' alt=':em253:' title=':em253:' /> |
|