|
先澄清几个基本概念,如果您已经知道了可以略过:
星际的单位粗略分为大体积,中体积,小体积,但这只是对承受攻击而言(例如爆炸式攻击对小体积减半)。而单位真实的几何体积才会影响到是否能通过一些建筑学。
概念一:所有单位无论形状如何,都是一个方向不变的矩形。
例如zealot,无论他的体位面对哪个方向,他的几何判定都是横向23像素,纵向19像素)
概念二:建筑虽然理论上都是几个标准的方块大小(一个方块是32*32像素),但实际大小是一个和标准方块占据空间之间有间隙的矩形。
例如人族基地,虽然理论上是4*3的方块,也就是128*96像素,但实际大小和上,左,右,下理论边界之间的空隙分别是(7,6,5,6)个像素。可以看到,不仅上下不对称,而且左右也是不对称的。(莫非是为了印证杨老的理论~ lol)
这就是为什么当两个建筑贴近摆放时,中间是有间隙的,这个间隙是这两个建筑在相应方向上和理论占据空间之间的空隙的和。
而单位是否能穿过建筑学,就是看它在垂直于前进方向的宽度是否大于总空隙。(大于则不能过,小于或等于就可以过)
----------------------
以下是TeamLiquid百科上所有建筑的空隙数据: (每列意义分别为 建筑名称,上空隙,左空隙,右空隙,下空隙,理论大小,实际大小)单位:像素
Buidingtop<-->botbox sizereal size
Terran Command Center:7656128x96117x83
Terran Supply Depot:10109596x6477x49
Terran Refinery:0870128x64113x64
Terran Barracks:816715128x96105x73
Terran Academy:083796x6485x57
Terran Factory:8877128x96113x81
Terran Starport:816159128x9697x79
Terran Science Facility:1016159128x9697x77
Terran Engineering Bay:16161519128x9697x61
Terran Armory:000996x6496x55
Terran Missile Turret:016151564x6433x49
Terran Bunker:816151596x6465x41
Infested Command Center:7656128x96117x83
Zerg Hatchery:16151415128x9699x65
Zerg Lair:16151415128x9699x65
Zerg Hive:16151415128x9699x65
Zerg Nydus Canal:000064x6464x64
Zerg Hydralisk Den:087796x6481x57
Zerg Defiler Mound:0161527128x6497x37
Zerg Greater Spire:043764x6457x57
Zerg Queen's Nest:41015396x6471x57
Zerg Evolution Chamber:04151196x6477x53
Zerg Ultralisk Cavern:0815096x6473x64
Zerg Spire:043764x6457x57
Zerg Spawning Pool:41271396x6477x47
Zerg Creep Colony:888864x6448x48
Zerg Spore Colony:888864x6448x48
Zerg Sunken Colony:888864x6448x48
Zerg Extractor:0000128x64128x64
Protoss Nexus:9878128x96113x79
Protoss Robotics Facility:161271196x6477x37
Protoss Pylon:2016151164x6433x33
Protoss Assimilator:016157128x6497x57
Protoss Observatory:1643396x6489x45
Protoss Gateway:1616157128x9697x73
Protoss Photon Cannon:1612111564x6441x33
Protoss Citadel of Adun:8247796x6465x49
Protoss Cybernetics Core:887796x6481x49
Protoss Templar Archives:81615796x6465x49
Protoss Forge:812111196x6473x45
Protoss Stargate:8161515128x9697x73
Protoss Fleet Beacon:080796x6488x57
Protoss Arbiter Tribunal:443396x6489x57
Protoss Robotics Support Bay:016151196x6465x53
Protoss Shield Battery:1616151596x6465x33
于是就可以方便的知道各种建筑的摆放是否能通过特定的单位。
为了总结出所有的需要达到特定目的的建筑学,必须穷举每种建筑的摆放方法,这只能通过程序了。
(具体代码就不写在帖子里了,有兴趣的可以查看下面的附件,程序的目的是检测什么建筑可以通过一种单位的同时挡住另一种单位,有问题欢迎讨论~)
现在举几个比较实用或者有意思的例子:
1. 人族让枪兵通过而挡住狂热者的人族横向建筑学的结果:
TBA TBB
TBA TVS
TBA TVI
TBA TBE
TBA TBT
TBA TBU
TBC TBB
TBC TVS
TBC TVI
TBC TBE
TBC TBT
TBC TBU
TBR TBS
TVF TBS
TBB TBS
TBS TBA
TBS TBR
TBS TVF
TBS TBS
TVS TBC
TVI TBC
TBE TBC
TBT TBC
TBU TBC
The above horizontal combinations can block zealot and pass marine.
The number of all block types is 24
(说明:例如第一个结果\"TBA TBB\",第一个字母T表明是人族的建筑,后面两个字母是建筑的建造快捷键,结果中的两个建筑在横向摆放时按左右顺序,在纵向摆放时按上下顺序。)
共有24种,但发现有很多不大实用的情况,比如TVA,TVS,TVI,TBA,TBT这些,不会在tvp前期zealot压制的时候就出现,可以在程序的\"禁止建筑“数组中加入不想要的这些建筑,于是得到新的结果:
TBC TBB
TBC TBE
TBC TBU
TBR TBS
TVF TBS
TBB TBS
TBS TBR
TBS TVF
TBS TBS
TBE TBC
TBU TBC
The above horizontal combinations can block zealot and pass marine.
The number of all block types is 11
2. 刺蛇可以通过而狂热者不能通过的虫族横向建筑学(刺蛇宽度 小于 狂热者)
ZBH ZBD
ZBH ZVU
ZBH ZBC
ZBD ZBH
ZBS ZBH
The above horizontal combinations can block zealot and pass hydralisk.
The number of all block types is 5
3. 狂热者可以通过而刺蛇不能通过的神族纵向建筑学 (狂热者纵向长度 小于 刺蛇)
PVR PBN
PVR PVC
PVR PBY
PVR PVT
PVR PBF
PVR PVS
PBP PBN
PBP PVC
PBP PBY
PBP PVT
PBP PBF
PBP PVS
PVO PVR
PVO PVO
PVO PBG
PVO PBC
PVO PBB
PBF PBN
PBF PVC
PBF PBY
PBF PVT
PBF PBF
PBF PVS
PVB PBN
PVB PVC
PVB PBY
PVB PVT
PVB PBF
PVB PVS
The above vertical combinations can pass zealot and block hydralisk.
The number of all block types is 29
4. 居然还存在白球可以过大象却不能过的情况(神族横向建筑学)
PBC PVC
PBF PVC
The above horizontal combinations can block ultralisk and pass archon.
The number of all block types is 2
原来大象还要宽一点,呵呵。。
所以可以方便的测试各种需要的情况了。 |
|