这个不是AI所独有,放在这里主要是它涉及到效率。 玩家势力达到20支城外部队,7个城市。 play_controller::do_init_side
playsingle_controller::before_human_turn
可以发现在calculate_healing、reset_resting时会花费的时间最多。 |
减少可能性 display::draw作用是重画游戏窗口界面,要是AI时间够短,即使界面上没做做到实时更新,像AI部队移动了但没有小地图表现出来,玩家也可以接受。 不能少原因 1、小地图。display::draw画的内容除了大地图还有小地图。像一只AI部队移动路径不在当前窗口,它移动后大地图上可以不必画,但小地图是啥个地方都能看到的,不调用display::draw就没法剧新小地图。 2、有动画的地形。当前窗口存在有动画地形时,要是不调用display::draw就没法显示这些动画。 执行策略 提供一个选项指示是否要降低cpu使用率,lower_cpu_usage。该选项默认是false。 选择要降低cpu使用率时,每次AI过程只会在最后一次调用带有重画小地图的display::draw。 lower_cpu_usage=flase时,要屏蔽掉的几处display::draw调用。 1:actions.cpp中的move_unit中的disp.draw()。它在移动动画后要调用它来更新小地图。 2:actions.cpp中的attack::perform()。攻击后要调用它来更新小地图。 |