http://wcg.yesky.com/272/3321272_3.shtml
最近老有网友问到为什么有时候堵口堵不住,到底有什么技巧?
其实这涉及到了星际建筑建造时位置的设定等关系。小葱本来是打算五一放假回来后好好研究一下再给大家详细解释,但有的网友问的太急了,所以先就我知道的给大家简单介绍一下原理和实际应用,因时间太紧,所以计算过程和结果不敢保证完全无误,但不影响理解原理,等五一长假后在回来完善。
一、建筑在摆放位置上的设定。
1.在星际里建筑的位置只能按格数来计算,而不是随便移动的,也就是说你只能把建筑建在地图已经化好的特定格数内,而不能随便移动几个像素,只能移动几格。
2.每个建筑都是矩形
3.被占用的格不能用于其他建筑。
4.建筑的中心点和矩形的中心点重合
星际中用来堵口的几个建筑(如房子,兵营)的建筑位置如下图所示
人族房子是必须放在2*3格数的矩形内,兵营是3*4格数的矩形
蓝框是房子所占面积,蓝点是建筑中心,红框是兵营所占面积,红点是建筑中心。
二、建筑本身的设定
建筑有着自身的体积,有着自己的建筑中心,按建筑中心想上下左右伸展不同宽度,形成最终形状。
上图中的A,B,C就是垂直方向上摆放的房子A,兵营B,房子C。
兵营的建筑设定是
也就是说以建筑中心为准向左延伸48像素,向右延伸56像素,向上延伸40像素,向左延伸32像素
那么我们可以看到,兵营B就在他所在的3*4矩形内,在其周围留下了不同宽度的缝隙。
同样的上面和下面的房子AC周围也留下了缝隙。
那么A和B之间的缝隙宽度就是两者建筑缝隙的总和。
而当这种缝隙的宽度比某兵种身位大时,那么此兵种就能通过此缝隙,反之则不能。
我们拿小狗为例,我们堵口就是要找到哪些建筑组合之间的缝隙小于小狗身位。
继续那上图为例,
AB之间的缝隙宽度为(1+1.5)*32-26-40=14
BC之间的缝隙宽度为(1+1.5)*32-22-32=26
而小狗的身位是15,那么
当房子在兵营上方时,小狗过不去
当房子在兵营下方时,小狗能过去
经过计算,我们可以得出以下几种经常用到的建筑方式可完全堵死路口。
水平方向摆放:
1、人族房子和科研所(BA)之间缝隙
垂直方向摆放:
1、人族房子在上,兵营在下
2、人族房子和房子
3、人族科研所在上,兵营在下
4、神族兵营在上,煅炉(BF)在下
以上几种情况下,两种建筑之间缝隙小狗无法通过。还有几种特殊建筑也可,不过实战中基本不会出现,完全没有意义。其他状态下的堵口都需用部队来站在建筑中间或边缘来弥补缝隙。如果遇到特殊地图和路口请大家自行研究一下。
大家经常犯的错误:神族BF在上兵营在下;人族BA放在了房子上面;房子和房子水平摆放(空隙20像素)。
下面帖几张图供参考。
主要建筑设定值(左右上下顺序)
神族
BF 36 36 24 20
BP 16 16 12 20
BG 48 48 32 40
人族
BS 38 38 22 26
BB 48 56 40 32
BA 40 44 32 24
特别说明:
神族BG和BF之间的宽度我们通过计算应该是16像素
而我们知道小狗的宽度是15
那么为什么小狗过不去哪?
这是因为小狗的宽度指的是15像素宽度,也就是15个(两个像素间距离),也就是说,实际上他要占用16个像素(头尾都要算),而BG和BF之间的距离虽然够15像素距离,但因为两头的像素点已经被建筑本身占有,不能再分配个小狗,所以小狗不能通过这个看起来能过去的缝隙。
所以大家在计算的时候要把小狗的身体宽度看做16。