打飞机源代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#includeiostream#includewindows.h#includeconio.h#includetime.h#includestringusingnamespacestd;//打飞机源码亲测可用//allthestructures===============*/typedefstructFrame{COORDposition[2];intflag;}Frame;//*===============allthefunctions===============*/voidSetPos(COORDa)//setcursor{HANDLEout=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(out,a);}voidSetPos(inti,intj)//setcursor{COORDpos={i,j};SetPos(pos);}voidHideCursor(){CONSOLE_CURSOR_INFOcursor_info={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);}//把第y行,[x1,x2)之间的坐标填充为chvoiddrawRow(inty,intx1,intx2,charch){SetPos(x1,y);for(inti=0;i=(x2-x1);i++)coutch;}//在a,b纵坐标相同的前提下,把坐标[a,b]之间填充为chvoiddrawRow(COORDa,COORDb,charch){if(a.Y==b.Y)drawRow(a.Y,a.X,b.X,ch);else{SetPos(0,25);couterrorcode01:无法填充行,因为两个坐标的纵坐标(x)不相等;system(pause);}}//把第x列,[y1,y2]之间的坐标填充为chvoiddrawCol(intx,inty1,inty2,charch){inty=y1;while(y!=y2+1){SetPos(x,y);coutch;y++;}}//在a,b横坐标相同的前提下,把坐标[a,b]之间填充为chvoiddrawCol(COORDa,COORDb,charch){if(a.X==b.X)drawCol(a.X,a.Y,b.Y,ch);else{SetPos(0,25);couterrorcode02:无法填充列,因为两个坐标的横坐标(y)不相等;system(pause);}}//左上角坐标、右下角坐标、用row填充行、用col填充列voiddrawFrame(COORDa,COORDb,charrow,charcol){drawRow(a.Y,a.X+1,b.X-1,row);drawRow(b.Y,a.X+1,b.X-1,row);drawCol(a.X,a.Y+1,b.Y-1,col);drawCol(b.X,a.Y+1,b.Y-1,col);}voiddrawFrame(intx1,inty1,intx2,inty2,charrow,charcol){COORDa={x1,y1};COORDb={x2,y2};drawFrame(a,b,row,col);}voiddrawFrame(Frameframe,charrow,charcol){COORDa=frame.position[0];COORDb=frame.position[1];drawFrame(a,b,row,col);}voiddrawPlaying(){drawFrame(0,0,48,24,'=','|');//drawmapframe;drawFrame(49,0,79,4,'-','|');//drawoutputframedrawFrame(49,4,79,9,'-','|');//drawscoreframedrawFrame(49,9,79,20,'-','|');//drawoperateframedrawFrame(49,20,79,24,'-','|');//drawothermessageframeSetPos(52,6);cout得分:;SetPos(52,7);cout称号:;SetPos(52,10);cout操作方式:;SetPos(52,12);couta,s,d,w控制战机移动。;SetPos(52,14);coutp暂停游戏。;SetPos(52,16);coute退出游戏。;}//在[a,b)之间产生一个随机整数intrandom(inta,intb){intc=(rand()%(a-b))+a;returnc;}//在两个坐标包括的矩形框内随机产生一个坐标COORDrandom(COORDa,COORDb){intx=random(a.X,b.X);inty=random(a.Y,b.Y);COORDc={x,y};returnc;}booljudgeCoordInFrame(Frameframe,COORDspot){if(spot.X=frame.position[0].X)if(spot.X=frame.position[1].X)if(spot.Y=frame.position[0].Y)if(spot.Y=frame.position[0].Y)returntrue;returnfalse;}voidprintCoord(COORDa){cout(a.X,a.Y);}voidprintFrameCoord(Framea){printCoord(a.position[0]);cout-;printCoord(a.position[1]);}intdrawMenu(){SetPos(30,1);coutPlaneWar;drawRow(3,0,79,'-');drawRow(5,0,79,'-');SetPos(28,4);coutw和s选择,k确定;SetPos(15,11);cout1.简单的敌人;SetPos(15,13);cout2.冷酷的敌人;drawRow(20,0,79,'-');drawRow(22,0,79,'-');SetPos(47,11);cout简单的敌人:;SetPos(51,13);cout简单敌人有着较慢的移动速度。;SetPos(24,21);cout制作:中北大学12060341梦笔西谈;intj=11;SetPos(12,j);cout;drawFrame(45,9,79,17,'=','|');while(1){if(_kbhit()){charx=_getch();switch(x){case'w':{if(j==13){SetPos(12,j);cout;j=11;SetPos(12,j);cout;SetPos(51,13);cout;SetPos(47,11);cout简单的敌人:;SetPos(51,13);cout简单敌人有着较慢的移动速度。;}break;}case's':{if(j==11){SetPos(12,j);cout;j=13;SetPos(12,j);cout;SetPos(51,13);cout;SetPos(47,11);cout冷酷的敌人:;SetPos(51,13);cout冷酷的敌人移动速度较快。;}break;}case'k':{if(j==8)return1;elsereturn2;}}}}}/*DWORDWINAPIMusicFun(LPVOIDlpParamte){DWORDOBJ;sndPlaySound(TEXT(bgm.wav),SND_FILENAME|SND_ASYNC);return0;}*///*==================theGameClass==================*/classGame{public:COORDposition[10];COORDbullet[10];Frameenemy[8];intscore;intrank;intrankf;stringtitle;intflag_rank;Game();//初始化所有voidinitPlane();voidinitBullet();voidinitEnemy();//初始化其中一个voidinitThisBullet(COORD);voidinitThisEnemy(Frame);voidplaneMove(char);voidbulletMove();voidenemyMove();//填充所有voiddrawPlane();voiddrawPlaneToNull();voiddrawBullet();voiddrawBulletToNull();voiddrawEnemy();voiddrawEnemyToNull();//填充其中一个voiddrawThisBulletToNull(COORD);voiddrawThisEnemyToNull(Frame);voidPause();voidPlaying();voidjudgePlane();voidjudgeEnemy();voidShoot();voidGameOver();voidprintScore();};Game::Game(){initPlane();initBullet();initEnemy();score=0;rank=25;rankf=0;flag_rank=0;}voidGame::initPlane(){COORDcentren={39,22};position[0].X=position[5].X=position[7].X=position[9].X=centren.X;position[1].X=centren.X-2;position[2].X=position[6].X=centren.X-1;position[3].X=position[8].X=centren.X+1;position[4].X=centren.X+2;for(inti=0;i=4;i++)position[i].Y=centren.Y;for(inti=6;i=8;i++)position[i].Y=centren.Y+1;position[5].Y=centren.Y-1;position[9].Y=centren.Y-2;}voidGame::drawPlane(){for(inti=0;i9;i++){SetPos(position[i]);if(i!=5)coutO;elseif(i==5)cout|;}}voidGame::drawPlaneToNull(){for(inti=0;i9;i++){SetPos(position[i]);cout;}}voidGame::initBullet(){for(inti=0;i10;i++)bullet[i].Y=30;}voidGame::drawBullet(){for(inti=0;i10;i++){if(bullet[i].Y!=30){SetPos(bullet[i]);cout^;}}}voidGame::drawBulletToNull(){for(inti=0;i10;i++)if(bullet[i].Y!=30){COORDpos={bullet[i].X,bullet[i].Y+1};SetPos(pos);cout;}}voidGame::initEnemy(){COORDa={1,1};COORDb={45,15};for(inti=0;i8;i++){enemy[i].position[0]

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功