资源描述:
《C++大作业坦克大战》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、WORD格式-专业学习资料-可编辑#include#include#include#include#includeusingnamespacestd;HANDLEMutex=CreateMutex(NULL,FALSE,NULL);//互斥对象intGameOver=0;intlevel=0;intmap[23][23];//坦克种类,Normal为玩家坦克#defineNormal0#defineRed1#defineBlue2#defineGree
2、n3//方向的宏定义#defineUp0#defineDown1#defineLeft2#defineRight3//地图标记的宏定义#defineEmpty0#definePlayer1#definePlayerBullet2#defineEnemyBullet3#defineEnemy4intKill;intKillRed;intKillGreen;intEnemyExist;voidSetPos(inti,intj)//设定光标位置--学习资料分享----WORD格式-专业学习资料-可编辑{COORDpos={i,j};HANDLEOut=
3、GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(Out,pos);}voidHideCurSor(void)//隐藏光标{CONSOLE_CURSOR_INFOinfo={1,0};--学习资料分享----WORD格式-专业学习资料-可编辑HANDLEOut=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorInfo(Out,&info);}intsharp[4][12]={{0,1,1,0,1,1,1,2,2,0,2,2},{0,0,
4、0,2,1,0,1,1,1,2,2,1},{0,1,0,2,1,0,1,1,2,1,2,2},{0,0,0,1,1,1,1,2,2,0,2,1},};//此数组用来保存坦克各个方向的形状信息DWORDWINAPIBulletfly(LPVOIDlpParameter);//子弹函数申明voidUpdata();//更新界面信息函数申明classTank//坦克类{private:intDirection;//方向inthotpoint[2];//活动点intSpeed;//速度intFirePower;//火力public:Tank(intdir
5、,inthot1,inthot2,inttyp,intspe,intfirepow)//构造函数{Direction=dir;hotpoint[0]=hot1;hotpoint[1]=hot2;Type=typ;Speed=spe;FirePower=firepow;}intType;//坦克的种类(详见宏定义)intID;//坦克在MAP中的标记(详见宏定义)intFireEnable;//是否可以开火intLife;//生命值voidRunning();//运行函数intJudge(intx,inty,intID);//判断是否可以绘制坦克-
6、-学习资料分享----WORD格式-专业学习资料-可编辑voidDrawTank();//重绘坦克voidRedraw();//擦除坦克intGetSpeed()//获取速度{returnSpeed;}--学习资料分享----WORD格式-专业学习资料-可编辑intGetFire()//获取火力{returnFirePower;}intGetDirection()//获取方向{returnDirection;}intGetHotX()//获取活动点坐标{returnhotpoint[0];}intGetHotY(){returnhotpoint[
7、1];}voidIncreaseFire()//火力+{FirePower++;}voidIncreaseSpeed()//速度+{Speed++;}voidChangeDirection(intnewD)//改变方向{Direction=newD;}voidChangePos(intx,inty)//改变活动点{hotpoint[0]=x;hotpoint[1]=y;}};--学习资料分享----WORD格式-专业学习资料-可编辑Tankplayer(Right,0,0,Normal,1,1);//玩家Tankenemy(Left,20,0,R
8、ed,1,1);//敌人voidTank::DrawTank()//绘制坦克{inti;intnx,ny;if(Type==Red)--