calculate_pos:-
start_random_from(_),
for(P,0,G_CC-1),
(status(P) =:= 4 ->
move_object(P,tar_x(P),tar_y(P),2) % 单位的下达普通移动命令时的移动速度
else ( status(P) mod 2 =:= 1 ->
move_shell(P,cc_x(attack(P)),cc_y(attack(P)),4)
else ( status(P) =:= 2 ->
( cc_t(attack(P)) mod 4 =:= 2 ->
status(P):=0
else ( (cc_x(P)-cc_x(attack(P)))**2 + (cc_y(P)-cc_y(attack(P)))**2 > 10000 ->
move_object(P,cc_x(attack(P)),cc_y(attack(P)),3) % 单位下达攻击命令时前往攻击目标的移动速度
else
status(P):=3,
tar_x(P):=cc_x(P),
tar_y(P):=cc_y(P)
))
else ( status(P) =:= 0 ->
(find_enemy(P,near,Enemy) ->
status(P):=1,
attack(P):=Enemy,
tar_x(P):=cc_x(P),
tar_y(P):=cc_y(P)
)
else ( status(P) =:= 8 ->
born(P):=born(P)+5,
(born(P)>100 ->
born(P):= -100,
make_soldier(P)
)
))))),
fail.
如果你和我一样被电脑虐得很惨,可以提高单位的普通移动速度,把攻击时向目标靠拢的速度改为0,虽然此时电脑遍地开花的速度更快了,但是电脑的单位只能乖乖待在兵营周围,而你可以集中兵力,通过普通移动快速移动到敌方单位附近,跟他们打一个闪电战,你的单位在攻击范围内将进行自动攻击。不过也是在此时我才发现,子弹是有自动追踪功能的,明确了目标的子弹,只要还未跟目标碰撞,目标跑到哪里,就永远跟到哪里。
来源:oschina
链接:https://my.oschina.net/baytars/blog/3196156