1、思路描述:
我是负责小兵的AI部分,其实小兵的移动和攻击和英雄有许多相似之处,理应继承于同一个基类,但是我们偷了个懒,就没用继承。而小兵AI的重点就在于什么时候移动,什么时候停止。我是在小兵前面有敌人时让小兵停止移动并开始攻击,这里我就套用了英雄的移动和攻击函数,不同之处在于需要先判断小兵前面有没有敌人,还有小兵的攻击距离为一。
2、代码说明:代码相较于上次有所改进。
void kar::Gmove(kar **x)
{
ed=clock();
if(ed-bg<1000)return ;
bg=ed;
pos *itsp;
int p=0,flag=1,i;
for(i=10;i<29;i++)
{
if(x[i]==NULL)continue;
itsp=new pos(x[i]->nowpos);
itsp->ix+=x[i]->dir;
for(p=0;p<29;p++)
{
if(x[p]==NULL)continue;
if(x[p]->camp!=x[i]->camp&&x[p]->nowpos==*itsp)
{
x[p]->attacked(x[i]->attack);
break;
}
}
delete itsp;
if(x[i]->blood<=0)
{
delete x[i];x[i]=NULL;continue;
}
if(p==29)x[i]->move(x[i]->dir);
}
}
原文:https://www.cnblogs.com/menmamizigeda/p/9240614.html