• 王者光耀第三次


    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);//如果把存放小兵的指针数组扫描完没有发现前方有敌人就移动
    	}
    }
    
    3、各阶段花费时间:
    

    在第一阶段,讨论时间为3到4个小时,对小兵的类的构建用了两个小时。
    在第二阶段,采取边讨论边敲代码的方式,讨论了三个小时,回去又接着敲了小兵的移动又敲了两三个小时。
    在第三阶段,对小兵移动和攻击进行改进,又花了三个小时。
    4、遇到的困难:
    虽然我不是负责通过键盘来操控英雄部分的,但是我为了能学到怎么一秒移动一格,我去百度了一下,然后就了解到了clock()的用法。

  • 相关阅读:
    TCP的初始cwnd和ssthresh
    C/C++ main
    PHP Function
    run bin
    PHP
    LAMP
    PHP MATH
    PHP array sort
    inline
    gcc g++
  • 原文地址:https://www.cnblogs.com/menmamizigeda/p/9240614.html
Copyright © 2020-2023  润新知