|
楼主 |
发表于 2014-2-6 23:44:00
|
显示全部楼层
本帖最后由 DragonZen 于 2014-2-6 23:48 编辑
车速:
公路:快的情况70,五秒钟走100米,中速未知,慢的话20,五秒钟走25米——公路的格子怎么算还是问题,这是极快。
野地:快的情况50,五秒钟走80米,中速未知,慢的话20,五秒钟走25米。走到交叉就继续算吧。
步兵:
快速:快速五秒钟30米,常速5秒钟10米,慢速5秒钟5米。战斗慢速均为5秒2.5米-5米。(无公路状态)
左0,右15000,下1000,上15000,则六角星按横纵来划分就是:
x=sixX*100 y=sixY*100;按照8个方向计算,斜着乘1.4.
下面是每50米确定一个地形采样点的脚本,我多已经写过了,根据森林、高度差等用来计算行军速度的加成:
_i=0;_j=0;allpositions=[];
for [{_j=0}, {_j<300}, {_j=_j+1}] do {
_list=[];hint format ["j is %1",_j];
for [{_i=0}, {_i<300}, {_i=_i+1}] do
{
_Pforest=(selectBestPlaces [[_i*50,_j*50], 4, "(1 + forest)", 2, 1]);if(count _Pforest>0)then{_Pforest=_Pforest select 0 select 1;}else{_Pforest=0;};
_Psea=(selectBestPlaces [[_i*50,_j*50], 4, "(1 + sea)", 2, 1]);if(count _Psea>0)then{_Psea=_Psea select 0 select 1;}else{_Psea=0;};
_Phouses=(selectBestPlaces [[_i*50,_j*50], 4, "(1 + houses)", 2, 1]);if(count _Phouses>0)then{_Phouses=_Phouses select 0 select 1;}else{_Phouses=0;};
_DN=round ((getTerrainHeightASL [_i*50,_j*50] - getTerrainHeightASL [_i*50,_j*50+50]) atan2 50);
_DNE=round ((getTerrainHeightASL [_i*50,_j*50] - getTerrainHeightASL [_i*50+50,_j*50+50]) atan2 70);
_DE=round ((getTerrainHeightASL [_i*50,_j*50] - getTerrainHeightASL [_i*50+50,_j*50]) atan2 50);
_DSE=round ((getTerrainHeightASL [_i*50,_j*50] - getTerrainHeightASL [_i*50+50,_j*50-50]) atan2 70);
_DS=round ((getTerrainHeightASL [_i*50,_j*50] - getTerrainHeightASL [_i*50,_j*50-50]) atan2 50);
_DSW=round ((getTerrainHeightASL [_i*50,_j*50] - getTerrainHeightASL [_i*50-50,_j*50-50]) atan2 70);
_DW=round ((getTerrainHeightASL [_i*50,_j*50] - getTerrainHeightASL [_i*50-50,_j*50]) atan2 50);
_DNW=round ((getTerrainHeightASL [_i*50,_j*50] - getTerrainHeightASL [_i*50-50,_j*50+50]) atan2 70);
_RN=count ([_i*50,_j*50+25] nearRoads 20);
_RNE=count ([_i*50+25,_j*50+25] nearRoads 20);
_RE=count ([_i*50+25,_j*50] nearRoads 20);
_RSE=count ([_i*50+25,_j*50-25] nearRoads 20);
_RS=count ([_i*50,_j*50-25] nearRoads 20);
_RSW=count ([_i*50-25,_j*50-25] nearRoads 20);
_RW=count ([_i*50-25,_j*50] nearRoads 20);
_RNW=count ([_i*50-25,_j*50+25] nearRoads 20);
_list=_list+[[[_i*50,_j*50,getTerrainHeightASL [_i*50,_j*50]],[_DN,_DNE,_DE,_DSE,_DS,_DSW,_DW,_DNW],[_RN,_RNE,_RE,_RSE,_RS,_RSW,_RW,_RNW],_Psea,_Pforest,_Phouses]];
};
allpositions=allpositions+[_list];
};
hint format ["all position is %1",allpositions];
copyToClipboard (str allpositions);
exit;
对于距离过长时的路点,可以以城镇为中介,在城镇间预设最快通达的公路作为路点用以运输,按公路速度计算;如果是危险地带需要野战,就按上述的方式做慢速运动,这样基本能模拟不同地形和不同行军状态的移动——两种移动状态这一点可以参考Wargame ALB的两种移动。 |
|