1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C++控制台打飞机小游戏 | CSDN 博文精选

C++控制台打飞机小游戏 | CSDN 博文精选

时间:2023-07-20 15:37:48

相关推荐

C++控制台打飞机小游戏 | CSDN 博文精选

作者 | ixRic

责编 | 郭芮

出品 | CSDN博客

我终于决定还是把这个放出来。

这是我在纪中颓废的时候写的。

视频在这:/v_show/id_XNDQxMTQwNDA3Mg==.html

具体信息主界面上都有写。

按空格暂停,建议暂停后再升级属性。

记录最高分的文件进行了加密。

有boss(上面视频2分47秒)。

挺好玩的。

可能有bug,不想改了,整体体验不错就行了。

更多控制台操作可以看之前写的鼠标操作的文章(/C0102/article/details/79301667),也可以直接在这个上面复制。

MinGW编译无错误,只有lld输出的几个警告。

只有一个文件,没有任何其他的东西。

可以直接扒下来编译。

一开始写的时候打了很多注释,后来就不想打了。

大家凑合着看吧,不清楚的就评论,如果我还记得到就答一下哈。

对了,为了防止暂停作弊,暂停过后开始时鼠标会回到飞机的位置。

这个代码我一个人可能总共肝了20多个小时,如果你能帮我改得更有趣,bug更少的话可以找我。

更多内容看代码:

#include<set>#include<cmath>#include<ctime>#include<cstdio>#include<cstdlib>#include<vector>#include<windows.h>#include<algorithm>#include<iostream>#include<conio.h>#include<fstream>usingnamespacestd;#definefblack0#definefblue1#definefgreen2#definefcyan3#definefred4#definefpurple5#definefyellow6#definefwhite7#definefgray8#defineflight8#definebblack0#definebblue16#definebgreen32#definebcyan48#definebfred64#definebpurple80#definebyellow96#definebwhite112#definebgray128#defineblight128#definedirkey-32#defineupkey72#definedownkey80#defineleftkey75#definerightkey77#definewclearsystem("cls")#defineKEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)#defineLLlonglongvoidflash(inttimes){while(times--){system("color08");Sleep(300);system("color80");Sleep(300);}//Sleep(1000);system("color08");}voidHindCursor(){HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFOCursorInfo;GetConsoleCursorInfo(handle,&CursorInfo);CursorInfo.bVisible=false;SetConsoleCursorInfo(handle,&CursorInfo);}structButton{intx,y,color;constchar*name;intlen;};voidGetPos(POINT&pt){HWNDhwnd=GetForegroundWindow();GetCursorPos(&pt);ScreenToClient(hwnd,&pt);pt.y=pt.y/16,pt.x=pt.x/8;swap(pt.x,pt.y);}voidcolor(inta){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}voidgto(intx,inty){COORDpos;pos.X=y;pos.Y=x;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}ButtonNewButton(intx,inty,intcolor,constchar*name){Buttont;t.x=x,t.y=y,t.name=name;t.color=color;t.len=strlen(name);returnt;}boolPreserve(ButtonA){gto(A.x,A.y),color(A.color),printf("%s",A.name);POINTpt;GetPos(pt);if(pt.x==A.x&&(pt.y>=A.y&&pt.y<=A.y+A.len)){color(112),gto(A.x,A.y),printf("%s",A.name);if(KEY_DOWN(MOUSE_MOVED))return1;}return0;}pair<int,int>GetXY(){HANDLEhStdout;CONSOLE_SCREEN_BUFFER_INFOpBuffer;hStdout=GetStdHandle(STD_OUTPUT_HANDLE);GetConsoleScreenBufferInfo(hStdout,&pBuffer);returnmake_pair(pBuffer.dwCursorPosition.Y,pBuffer.dwCursorPosition.X);}template<typenameT>voidTprint(intNx,intNy,intColor,Ta){intx=GetXY().first,y=GetXY().second;gto(Nx,Ny),color(Color),cout<<a;gto(x,y);}voidColorPrint(){for(inti=0;i<256;i++)color(i),printf("%d\n",i);}voidSetWindow(constchar*name,intc,intw){charstr[30];sprintf(str,"title%s",name);system(str);sprintf(str,"modeconcols=%dlines=%d",w,c);system(str);}voidSetWindow(constchar*name,intc,intw,intx,inty){SetConsoleTitle(name);HWNDhwnd;hwnd=GetForegroundWindow();SetWindowPos(hwnd,HWND_TOP,y,x,w*8,c*16,SWP_SHOWWINDOW);}intread(){color(fwhite+flight);intx=0,f=1;charc=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}returnx*f;}#defineTPTprint#defineWINDOWC45#defineWINDOWW55#defineINF0x3f3f3f3f#defineOCfwhite+flight+bblack//originalcolorboolInRange(intx){returnx>=0&&x<=WINDOWC;}intBossFlag;intOwnShotTimes,OwnLoseBlood,OwnShotOnTimes;intMoneyFlash,ScoreFlash;constintConstNewDy[4]={-1,0,1};#defineMAX_BULLET_TYPE_NUM3constintConstBulletColor[MAX_BULLET_TYPE_NUM+5]={0,fyellow,fred+flight,fred+flight,fblue+flight,fred+bwhite};constcharConstBulletShape[MAX_BULLET_TYPE_NUM+5]={0,'*','*','O','|','%'};constintConstBulletDamage[MAX_BULLET_TYPE_NUM+5]={0,50,80,500,20,300};/*Move1blockevery100-Speedms*/constintConstBulletSpeed[MAX_BULLET_TYPE_NUM+5]={0,50,30,10,80,20};/*Thecolorofthefullblockinthebloodline*/constintConstBloodColor[4]={0,fred,fyellow,fgreen};#defineMAX_BOSS_NUM10constintConstBossFullBlood[MAX_BOSS_NUM+5]={0,1000,3000,5000,10000,30000,50000,100000,300000,500000,1000000};constintConstBossShotSpeed[MAX_BOSS_NUM+5][2]={{0,0},{30,-3900},{30,-3400},{50,-2900},{50,-2400},{70,-1900},{70,-1400},{90,-900},{90,-400},{100,-400},{100,-400}};constintConstBossStopCD[MAX_BOSS_NUM+5]={0,3200,3400,3600,3800,4000,4200,4400,4600,4800,5000};constintConstBossStopTime[MAX_BOSS_NUM+5]={0,3000,2800,2600,2400,2200,2000,1800,1600,1400,1200};constintConstBossMoveSpeed[MAX_BOSS_NUM+5]={0,800,800,800,850,850,850,900,900,900,950};constintConstBossScore[MAX_BOSS_NUM+5]={0,10000,20000,40000,80000,160000,320000,640000,1280000,2560000,5120000};constintConstBossMoney[MAX_BOSS_NUM+5]={0,100,200,500,1000,2000,5000,8000,10000,20000,50000};constintConstBossNeedScore[MAX_BOSS_NUM+5]={0,500,1000,1500,2000,2500,3000,3500,4000,4500,5000};structBullet{intisExist;intx,y,Type;intdx,dy,LastBulletRefreshTime;Bullet(){LastBulletRefreshTime=-INF;}Bullet(intisExist_,intx_,inty_,intType_,intdx_,intdy_):isExist(isExist_),x(x_),y(y_),Type(Type_),dx(dx_),dy(dy_){}};voidMoveBullet(Bullet&);/*WemustuseBullet*,orwecan'tchangethedata(positionofthebullet)intheset*/set<Bullet*>Ammo;voidBulletsRefresh(){vector<set<Bullet*>::iterator>Throw;for(set<Bullet*>::iteratorit=Ammo.begin();it!=Ammo.end();it++){Bullet*New=*it;MoveBullet(*New);/*Wecan'teraseitrightaway*/if(!New->isExist)Throw.push_back(it);}for(inti=0;i<int(Throw.size());i++)Ammo.erase(Throw[i]);}intBEGINTIME;intUFOAddBlood,UFOAddShotSpeed,UFOAddMoveSpeed,Added;structUFO{/*ShapeoftheUFO:0000/0000@@@(OOO)\-/V*/intisExist;intx,y;//positionoftheheadintdx,dy;intBlood,FullBlood;intShotSpeed,LastShotTime;intMoveSpeed;intLastMoveTime;intScore,Money;UFO(){if(BossFlag&&!Added)UFOAddBlood+=100,UFOAddShotSpeed+=100,UFOAddMoveSpeed+=100,Added=1;if(!BossFlag&&Added)UFOAddBlood-=100,UFOAddShotSpeed-=100,UFOAddMoveSpeed-=100,Added=0;isExist=1;x=0,y=rand()%(WINDOWW-4)+4;//MustbeinthescreenFullBlood=rand()%300+100+UFOAddBlood;Blood=FullBlood;ShotSpeed=rand()%1000+UFOAddShotSpeed;/*Move1blockevery1000-MoveSpeedms*/MoveSpeed=rand()%600+300+UFOAddMoveSpeed;LastMoveTime=LastShotTime=-INF;dx=1,dy=0;Score=FullBlood/30+((clock()-BEGINTIME)/10000);Money=MoveSpeed/100.0+FullBlood/100.0;}/*effectswhenbeinghit*/voidFlash(){/*theheadissuretobeinthescreensoweneedn'tcheck*/if(!isExist)return;if(x>0&&x<WINDOWC)TP(x,y,fpurple+bwhite,'V');if(x-1>0&&x-1<WINDOWC)TP(x-1,y-1,fpurple+bwhite,"\\-/");//Sleep(100);if(x>0&&x<WINDOWC)TP(x,y,fpurple+bblack,'V');if(x-1>0&&x-1<WINDOWC)TP(x-1,y-1,fpurple+bblack,"\\-/");}/*Checkifhitonlyonthebody*/boolHit(inttx,intty){return(tx==x&&ty==y)||(tx==x-1&&ty>=y-1&&ty<=y+1);}/*TocheckifitwillhitanotherUFO*/voidBloodRefresh(intNewX,intNewY){/*Toappeargradually,weshouldchecktheposition*/if(x-2>=0){TP(x-2,y-1,OC,"");if(isExist)if(NewX-2<WINDOWC){/*Roundup*/intFullBlock=(Blood*3+FullBlood-1)/FullBlood;//Numberof"@"intEmptyBlock=3-FullBlock;//Numberof"O"intBloodColor=ConstBloodColor[FullBlock];/*Printthebloodline*/for(inti=1;i<=FullBlock;i++)TP(NewX-2,NewY-2+i,BloodColor+bblack,'@');for(inti=1;i<=EmptyBlock;i++)TP(NewX-2,NewY-2+FullBlock+i,fgray+bblack,'O');}}/*Printtheblood/fullbloodnumber*//*Dueto%06dwecan'tuseTP*/if(x-3>=0){TP(x-3,y-4,OC,"");if(isExist){if(NewX-3<WINDOWC){gto(NewX-3,NewY-4),color(fcyan+bblack),printf("%04d",Blood);TP(NewX-3,NewY,fcyan+bblack,'/');gto(NewX-3,NewY+1),color(fcyan+bblack),printf("%04d",FullBlood);}}}if(x-3>=WINDOWC)isExist=0;}/*Cleartheshapeafteritdied*/voidClearPrint(){BloodRefresh(x,y);if(x-1>=0&&x-1<WINDOWC)TP(x-1,y-1,OC,"");if(x>=0&&x<WINDOWC)TP(x,y,OC,'');}voidShot(){intt=clock();if(!ShotSpeed||LastShotTime>=t-(5000-ShotSpeed))return;LastShotTime=t;if(x>0){Bullet*tmp=newBullet(1,x+1,y,2,1,0);Ammo.insert(tmp);}}};/*Itissimilartoset<Bullet*>instructPlane*/set<UFO*>Enemy;boolUFOCrash(int,int);boolUFOCrash(UFO,int,int,set<UFO*>::iterator);/*Movetheplanetoanewplace*/voidUFOMovePrint(UFO&me,set<UFO*>::iteratorid){intt=clock();if(me.LastMoveTime>=t-(1000-me.MoveSpeed))return;me.LastMoveTime=t;/*Changethedirection*/if(rand()%3==0)me.dy=ConstNewDy[rand()%3];intNewX=me.x+me.dx,NewY=me.y+me.dy;if(UFOCrash(me,NewX,NewY,id)||NewY-4<0||NewY+4>=WINDOWW)//||NewX<0||NewY-4<0||NewX>=WINDOWC||NewY+4>=WINDOWW){for(inti=0;i<3;i++){me.dy=ConstNewDy[rand()%3];NewX=me.x+me.dx,NewY=me.y+me.dy;if(!(UFOCrash(me,NewX,NewY,id)||NewY-4<0||NewY+4>=WINDOWW))//||NewX<0||NewY-4<0||NewX>=WINDOWC||NewY+4>=WINDOWW))break;}if(UFOCrash(me,NewX,NewY,id)||NewY-4<0||NewY+4>=WINDOWW)//||NewX<0||NewY-4<0||NewX>=WINDOWC||NewY+4>=WINDOWW)return;//TP(me.x,me.y,OC,'');if(NewX<WINDOWC){TP(me.x,me.y,fwhite+flight+bblack,'');if(me.isExist)TP(NewX,NewY,fwhite+flight+bblack,'V');}if(NewX-1>=0&&NewX-1<WINDOWC){TP(me.x-1,me.y-1,fwhite+flight+bblack,"");if(me.isExist)TP(NewX-1,NewY-1,fwhite+flight+bblack,"\\-/");}me.BloodRefresh(NewX,NewY);me.x=NewX,me.y=NewY;}intUFORefreshTime=3000,LastUFORefreshTime=0;voidUFORefresh(){intt=clock();if(LastUFORefreshTime<t-UFORefreshTime){UFO*tmp=newUFO;Enemy.insert(tmp);LastUFORefreshTime=t;}vector<set<UFO*>::iterator>Throw;for(set<UFO*>::iteratorit=Enemy.begin();it!=Enemy.end();it++){UFO*New=*it;if(!New->isExist)Throw.push_back(it);UFOMovePrint(*New,it);New->Shot();}for(inti=0;i<int(Throw.size());i++)Enemy.erase(Throw[i]);}#defineMAX_BUFF_NUM5constintConstBuffAppearPossibility[2][1000]={{1,2,2,2,2,2,2,3,4,5},{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,5}};constintConstBuffAppearTime[MAX_BUFF_NUM+5]={0,5000,5000,5000,5000,5000};constintConstBuffLastTime[MAX_BUFF_NUM+5]={0,5000,0,5000,10000,5000};constcharConstBuffName[MAX_BUFF_NUM+5]={0,'B','C','P','D','S'};constcharConstBuffColor[MAX_BUFF_NUM+5]={0,fblue+flight,fgreen+flight,fred+flight,fyellow+flight,fpurple+flight};structPlane{/*Shapeoftheplane:^(x,y)/\(x+1,y-1)to(x+1,y+1)|---------|(x+2,y-5)to(x+2,y+5)|(x+3,y)---(x+4,y-1)to(x+4,y+1)@@@@@@@@@(x+5,y-4)to(x+5,y+4)(OOOOOOOOO)000000/000000(x+6,y-6)to(x+6,y+6)(Bloodandfullblood)*/intx,y;//positionoftheheadintBlood,FullBlood;intLastShotTime;intShotSpeed;LLScore,BossScore;intBuffs[10],GetBuffTime[10];doubleAddAtack,AddShotSpeed;intMoney;intMeetBossTimes;voidInit(boolisDebug){if(isDebug){Ammo.clear();LastShotTime=-INF;/*Itshotonetimeinatmost1000-ShotSpeedms*/ShotSpeed=20;Blood=10000,FullBlood=10000;x=WINDOWC/2,y=WINDOWW-8;Score=BossScore=0;AddAtack=AddShotSpeed=50.0;MeetBossTimes=1;memset(Buffs,0,sizeofBuffs);}else{Ammo.clear();LastShotTime=-INF;/*Itshotonetimeinatmost1000-ShotSpeedms*/ShotSpeed=500;Blood=500,FullBlood=500;x=WINDOWC/2,y=WINDOWW-8;Score=BossScore=0;AddAtack=AddShotSpeed=1.0;MeetBossTimes=1;memset(Buffs,0,sizeofBuffs);}}boolNeedBoss(){if(Score>=ConstBossNeedScore[MeetBossTimes])returnMeetBossTimes++,1;return0;}voidFlash(intfcolor){TP(x,y,fcolor+bwhite,'^');TP(x+1,y-1,fcolor+bwhite,'/'),TP(x+1,y+1,fcolor+bwhite,'\\');TP(x+2,y-5,fcolor+bwhite,'|');for(inti=y-4;i<=y+4;i++)TP(x+2,i,fcolor+bwhite,'-');TP(x+2,y+5,fcolor+bwhite,'|');TP(x+3,y,fcolor+bwhite,'|');TP(x+4,y-1,fcolor+bwhite,'-'),TP(x+4,y,fcolor+bwhite,'-'),TP(x+4,y+1,fcolor+bwhite,'-');Sleep(200);TP(x,y,OC,'^');TP(x+1,y-1,OC,'/'),TP(x+1,y+1,OC,'\\');TP(x+2,y-5,OC,'|');for(inti=y-4;i<=y+4;i++)TP(x+2,i,OC,'-');TP(x+2,y+5,OC,'|');TP(x+3,y,OC,'|');TP(x+4,y-1,OC,'-'),TP(x+4,y,OC,'-'),TP(x+4,y+1,OC,'-');}/*Checkifhitonlyonthebody*/boolHit(inttx,intty){return(tx==x&&ty==y)||(tx==x+1&&ty>=y-1&&ty<=y+1)||(tx==x+2&&ty>=y-5&&ty<=y+5)||(tx==x+3&&ty==y)||(tx==x+4&&ty>=y-1&&ty<=y+1);}/*Movethebloodline(justmove)*//*RemembertocheckifthepositionisOKbeforeusing*//*Anditwon'tupdatetheplane'sposition(xandy)*/voidBloodRefresh(intNewX,intNewY){TP(x+5,y-4,OC,"");TP(x+6,y-6,OC,"");/*Roundup*/intFullBlock=(Blood*9+FullBlood-1)/FullBlood;//Numberof"@"intEmptyBlock=9-FullBlock;//Numberof"O"intBloodColor=ConstBloodColor[(FullBlock+2)/3];/*Printthebloodline*/for(inti=1;i<=FullBlock;i++)TP(NewX+5,NewY-5+i,BloodColor+bblack,'@');for(inti=1;i<=EmptyBlock;i++)TP(NewX+5,NewY-5+FullBlock+i,fgray+bblack,'O');/*Printtheblood/fullbloodnumber*//*Dueto%06dwecan'tuseTP*/gto(NewX+6,NewY-6),color(fgray+bblack),printf("%06d",Blood);TP(NewX+6,NewY,OC,'/');gto(NewX+6,NewY+1),color(fgray+bblack),printf("%06d",FullBlood);}/*Movetheplanetoanewplace*/voidMovePrint(intNewX,intNewY,intflag=1){/*Insurethatplayercancontroltheplanewhenthemouseisoutofscreen*/NewX=min(NewX,WINDOWC-7);NewY=min(max(NewY,6),WINDOWW-7);if(flag&&NewX==x&&NewY==y)return;//gto(WINDOWC-1,0),color(OC),printf("%3d%3d",NewX,NewY);//Debug/*Cleartheplaneintheoldposition*/TP(x,y,OC,'');TP(x+1,y-1,OC,''),TP(x+1,y+1,OC,'');for(inti=y-5;i<=y+5;i++)TP(x+2,i,OC,'');TP(x+3,y,OC,'');TP(x+4,y-1,OC,''),TP(x+4,y,OC,''),TP(x+4,y+1,OC,'');/*Movethebloodline*/BloodRefresh(NewX,NewY);/*Printinthenewposition*/x=NewX,y=NewY;TP(x,y,OC,'^');TP(x+1,y-1,OC,'/'),TP(x+1,y+1,OC,'\\');TP(x+2,y-5,OC,'|');for(inti=y-4;i<=y+4;i++)TP(x+2,i,OC,'-');TP(x+2,y+5,OC,'|');TP(x+3,y,OC,'|');TP(x+4,y-1,OC,'-'),TP(x+4,y,OC,'-'),TP(x+4,y+1,OC,'-');/*Refreshthebullets*/}voidShot(){/*Buff5*//*Fastershot*/intt=clock();if(Buffs[5]==1)ShotSpeed+=100,Buffs[5]=-1;if(Buffs[5]==-1&&t-GetBuffTime[5]>=ConstBuffLastTime[5]){ShotSpeed-=100;Buffs[5]=0;GetBuffTime[5]=0;}if(!ShotSpeed||LastShotTime>=t-(1000-ShotSpeed*AddShotSpeed))return;LastShotTime=t;if(x>0){OwnShotTimes++;intType=1;/*Buff3*//*Getbulletsmorepowerful*/if(Buffs[3]){if(t-GetBuffTime[3]>=ConstBuffLastTime[3])Buffs[3]=0,GetBuffTime[3]=0;elseType=3;}Ammo.insert(newBullet(1,x-1,y,Type,-1,0));/*Buff1*//*5linesofbullets*/if(Buffs[1]){if(t-GetBuffTime[1]>=ConstBuffLastTime[1]){Buffs[1]=0;GetBuffTime[1]=0;return;}Ammo.insert(newBullet(1,x-1,y-2,Type,-1,0));Ammo.insert(newBullet(1,x-1,y-1,Type,-1,0));Ammo.insert(newBullet(1,x-1,y+1,Type,-1,0));Ammo.insert(newBullet(1,x-1,y+2,Type,-1,0));}}}}Own;structBuff{intx,y;intType;intDisappearTime;Buff(){}Buff(intt){x=rand()%(WINDOWC-3)+1,y=rand()%(WINDOWW-2)+1,Type=t,DisappearTime=clock()+ConstBuffAppearTime[t];}};set<Buff*>BuffIn;intLastBuffAppearTime;intBuffAppearCD=3000;voidBuffRefresh(){intT=clock();/*Newbuffinthescreen*/if(LastBuffAppearTime+BuffAppearCD<=T){intid=rand();intt=ConstBuffAppearPossibility[BossFlag][id%10];if(t)BuffIn.insert(newBuff(t));LastBuffAppearTime=T;}vector<set<Buff*>::iterator>Throw;for(set<Buff*>::iteratorit=BuffIn.begin();it!=BuffIn.end();it++){Buff*p=*it;TP(p->x,p->y,ConstBuffColor[p->Type],ConstBuffName[p->Type]);if(Own.Hit(p->x,p->y)){/*Buff2*//*Recover100blood*/if(p->Type==2){Own.Blood=min(Own.Blood+100,Own.FullBlood);Own.BloodRefresh(Own.x,Own.y);}else{Own.Buffs[p->Type]=1;Own.GetBuffTime[p->Type]=T;}Throw.push_back(it);TP(p->x,p->y,OC,'');}elseif(T>=p->DisappearTime){Throw.push_back(it);TP(p->x,p->y,OC,'');}}for(inti=0;i<int(Throw.size());i++)BuffIn.erase(Throw[i]);//for(inti=1;i<=MAX_BUFF_NUM;i++)//if(Own.Buffs[i]&&clock()-Own.GetBuffTime[i]>=ConstBuffLastTime[i])//Own.Buffs[i]=0;}constcharCHART[15]={'|','?','^','&','=','!','@',':','p','\\'};voidGameOver(){color(OC);system("cls");/*Getmaxscorebefore*/LLMaxScore=0;LLnum=((MaxScore*18-2)*38-1314)/2*100+52;ifstreamR("./MaxScore.sc");if(!R.is_open())TP(0,0,OC,"ERROR");stringstr;R>>str;if(str.length()){num=0;for(inti=0;i<int(str.length());i++)if(isdigit(str[i]))num=num*10ll+str[i]-'0';}R.close();/*unlock*/MaxScore=(((num-52)/100*2+1314)/38+2)/18;TP(WINDOWC/2-2,(WINDOWW+40-10)/2,fred+flight+bblack,"GameOver!");TP(WINDOWC/2-1,(WINDOWW+40-15)/2,OC,"Yourscore:");gto(WINDOWC/2-1,(WINDOWW+40-15)/2+12),color(OC),printf("%08lld",Own.Score+Own.BossScore);TP(WINDOWC/2,(WINDOWW+40-15)/2,OC,"MaxScore:");gto(WINDOWC/2,(WINDOWW+40-15)/2+12),color(OC),printf("%08lld",max(Own.Score+Own.BossScore,MaxScore));if(Own.Score+Own.BossScore>MaxScore){TP(WINDOWC/2+1,(WINDOWW+40-15)/2+2,fred+flight+bblack,"(Refreshed!)"),MaxScore=Own.Score+Own.BossScore;/*lock*/num=((MaxScore*18-2)*38-1314)/2*100+52;stringNew;for(inti=1;i<=30;i++){if(rand()%2)New+=CHART[rand()%10];elseif(num)New+=num%10+'0',num/=10;}while(num)New+=num%10+'0',num/=10;while(New.length()<30)New+=CHART[rand()%10];reverse(New.begin(),New.end());fstreamCLEAR("./MaxScore.sc",ios::trunc);CLEAR.close();ofstreamT("./MaxScore.sc");if(!T.is_open())TP(0,0,OC,"ERROR");T<<New;T.close();}TP(WINDOWC/2+2,(WINDOWW+40-15)/2-3,OC,"(Pressanykeytoexit)");getch();gto(WINDOWC/2+4,0),exit(0);}boolisHit(int,int,int);voidMoveBullet(Bullet&me){intt=clock();if(me.LastBulletRefreshTime>=t-(100-ConstBulletSpeed[me.Type]))return;me.LastBulletRefreshTime=t;inttx=me.x+me.dx,ty=me.y+me.dy;TP(me.x,me.y,OC,'');/*Itrunsoutofthescreen=>eraseit*/if(tx<0||tx>=WINDOWC||ty<0||ty>=WINDOWW||isHit(tx,ty,me.Type)){me.isExist=0;return;}TP(me.x=tx,me.y=ty,ConstBulletColor[me.Type],ConstBulletShape[me.Type]);}#defineMAX_BUFFFULLNAME_LEN16constintConstBuffTipPosition[MAX_BUFF_NUM+5][2]={{0,0},{13,WINDOWW+3},{14,WINDOWW+3},{15,WINDOWW+3},{16,WINDOWW+3},{17,WINDOWW+3}};constcharConstBuffFullName[MAX_BUFF_NUM+5][MAX_BUFFFULLNAME_LEN+5]={"","4morebullets","recover50blood","morepowerful","doublescore","shotfaster"};constintConstMaxBuffFullNameLen[MAX_BUFF_NUM+5]={0,16,16,16,16,16};voidBuffTipRefresh(){/*TP(12,WINDOWW+3,OC,"---------DetailsofBuffs---------");TP(18,WINDOWW+3,OC,"----------------------------------");*/intC=fgray;for(inti=1;i<=MAX_BUFF_NUM;i++){TP(ConstBuffTipPosition[i][0],ConstBuffTipPosition[i][1],C,ConstBuffName[i]);TP(ConstBuffTipPosition[i][0],ConstBuffTipPosition[i][1]+1,C,":");TP(ConstBuffTipPosition[i][0],ConstBuffTipPosition[i][1]+3,C+(Own.Buffs[i]?bwhite+blight:0),ConstBuffFullName[i]);gto(ConstBuffTipPosition[i][0],ConstBuffTipPosition[i][1]+3+ConstMaxBuffFullNameLen[i]),color(C+(Own.Buffs[i]?bwhite+blight:0)),printf("[%02dS]",int(Own.Buffs[i]?(ConstBuffLastTime[i]-(clock()-Own.GetBuffTime[i])+999)/1000:0));}}voidEnemyClear(){inttmp=UFORefreshTime;UFORefreshTime=INF;for(set<UFO*>::iteratorit=Enemy.begin();it!=Enemy.end();it++)(*it)->isExist=0;UFORefresh();UFORefreshTime=tmp;}doublePerformance();//DCBASconstintPerfColor[10]={fblack+bwhite,fgray+bwhite,fpurple+bwhite,fgreen+bwhite,fred+bwhite};constcharPerfLevel[10][8]={"D.","C.","B.","A!","S!!"};structBOSS{/*Shapeoftheboss:0000000/0000000(x-7,y-7)to(x-7,y+7)@@@@@@@@@@@@@@@(x-6,y-7)to(x-6,y+7)(OOOOOOOOOOOOOOO)[-----------](x-5,y-6)to(x-5,y+6)\OOXXXOO/(x-4,y-4)to(x-4,y+4)+---\XXOXX/---+(x-3,y-7)to(x-3,y+7)V\OOO/V(x-2,y-7)to(x-2,y+7)\O/(x-1,y-1)to(x-1,y+1)V(x,y)*/intisExist;intx,y;//positionoftheheadintdx,dy;intBlood,FullBlood;intShotSpeed1,ShotSpeed2,LastShotTime1,LastShotTime2,flag2;intMoveSpeed,LastMoveTime;intScore,AppearTime;intStopCD,StopTime,LastStopTime,isStop;intMoney;boolHit(inttx,intty){return(tx==x-5&&ty>=y-6&&ty<=y+6)||(tx==x-4&&ty>=y-4&&ty<=y+4)||(tx==x-3&&ty>=y-7&&ty<=y+7)||(tx==x-2&&((ty==y-7)||(ty==y+7)||(ty>=y-2&&ty<=y+2)))||(tx==x-1&&ty>=y-1&&ty<=y+1)||(tx==x&&ty==y);}voidDie(){flash(3);BossFlag=0;doubletmp=Performance();intAdd=int(Score*tmp);Own.BossScore+=Add;Own.Money+=Money*(tmp/3.0);ScoreFlash=MoneyFlash=1;TP(WINDOWC/2-1,WINDOWW/2-18,OC,"+-----------------------------------+");TP(WINDOWC/2,WINDOWW/2-18,OC,'|'),gto(WINDOWC/2,WINDOWW/2-7),color(PerfColor[int(tmp)]),printf("%s",PerfLevel[int(tmp)]),printf("+%dscores!",Add),TP(WINDOWC/2,WINDOWW/2+18,OC,'|');TP(WINDOWC/2+1,WINDOWW/2-18,OC,"+-----------------------------------+");Sleep(1500);TP(WINDOWC/2-1,WINDOWW/2-18,OC,"");TP(WINDOWC/2,WINDOWW/2-18,OC,"");TP(WINDOWC/2+1,WINDOWW/2-18,OC,"");if(x-7>=0)TP(x-7,y-7,OC,"");if(x-6>=0)TP(x-6,y-7,OC,"");if(InRange(x))TP(x,y,OC,'');if(InRange(x-1))TP(x-1,y-1,OC,"");if(InRange(x-2))TP(x-2,y-7,OC,"");if(InRange(x-3))TP(x-3,y-7,OC,"");if(InRange(x-4))TP(x-4,y-4,OC,"");if(InRange(x-5))TP(x-5,y-6,OC,"");EnemyClear();}voidFlash(){if(InRange(x-5))TP(x-5,y-6,fblack+bwhite,"[-----------]");if(InRange(x-4))TP(x-4,y-4,fblack+bwhite,'\\'),TP(x-4,y-3,fblack+bwhite,"OO"),TP(x-4,y-1,fblack+bwhite,"XXX"),TP(x-4,y+2,fblack+bwhite,"OO"),TP(x-4,y+4,fblack+bwhite,"/");if(InRange(x-3))TP(x-3,y-7,fblack+bwhite,"+---\\XX"),TP(x-3,y,fblack+bwhite,'O'),TP(x-3,y+1,fblack+bwhite,"---+");if(InRange(x-2))TP(x-2,y-7,fblack+bwhite,'V'),TP(x-2,y-2,fblack+bwhite,'\\'),TP(x-2,y-1,fblack+bwhite,"OOO"),TP(x-2,y+2,fblack+bwhite,'/'),TP(x-2,y+7,fblack+bwhite,'V');if(InRange(x-1))TP(x-1,y-1,fblack+bwhite,'\\'),TP(x-1,y,fblack+bwhite,'O'),TP(x-1,y+1,fblack+bwhite,'/');if(InRange(x-5))TP(x-5,y-6,OC,"[-----------]");if(InRange(x-4))TP(x-4,y-4,OC,'\\'),TP(x-4,y-3,fgray+bblack,"OO"),TP(x-4,y-1,OC,"XXX"),TP(x-4,y+2,fgray+bblack,"OO"),TP(x-4,y+4,OC,"/");if(InRange(x-3))TP(x-3,y-7,OC,"+---\\XX"),TP(x-3,y,fgray+bblack,'O'),TP(x-3,y+1,OC,"---+");if(InRange(x-2))TP(x-2,y-7,fgray+bblack,'V'),TP(x-2,y-2,OC,'\\'),TP(x-2,y-1,fgray+bblack,"OOO"),TP(x-2,y+2,OC,'/'),TP(x-2,y+7,fgray+bblack,'V');if(InRange(x-1))TP(x-1,y-1,OC,'\\'),TP(x-1,y,fgray+bblack,'O'),TP(x-1,y+1,OC,'/');if(InRange(x))TP(x,y,OC,'');if(InRange(x))TP(x,y,OC,'V');}voidInit(intS){Blood=FullBlood=ConstBossFullBlood[S];x=0,y=rand()%(WINDOWW-14)+7;//Mustbeinthescreendx=1,dy=0;LastShotTime1=LastShotTime2=0;flag2=0;ShotSpeed1=ConstBossShotSpeed[S][0],ShotSpeed2=ConstBossShotSpeed[S][1];MoveSpeed=ConstBossMoveSpeed[S];LastMoveTime=0;Score=ConstBossScore[S];AppearTime=clock();isExist=1;StopTime=ConstBossStopTime[S],StopCD=ConstBossStopCD[S],LastStopTime=isStop=0;Money=ConstBossMoney[S];}voidBloodRefresh(intNewX,intNewY){/*Printtheblood/fullbloodnumber*//*Dueto%06dwecan'tuseTP*/if(x-7>=0){dx=0;TP(x-7,y-7,OC,"");if(isExist){if(NewX-7<WINDOWC){gto(NewX-7,NewY-7),color(fcyan+bblack),printf("%07d",Blood);TP(NewX-7,NewY,fcyan+bblack,'/');gto(NewX-7,NewY+1),color(fcyan+bblack),printf("%07d",FullBlood);}}}/*Toappeargradually,weshouldchecktheposition*/if(x-6>=0){TP(x-6,y-7,OC,"");if(isExist)if(NewX-6<WINDOWC){/*Roundup*/intFullBlock=(Blood*15+FullBlood-1)/FullBlood;//Numberof"@"intEmptyBlock=15-FullBlock;//Numberof"O"intBloodColor=ConstBloodColor[(FullBlock+4)/5];/*Printthebloodline*/for(inti=1;i<=FullBlock;i++)TP(NewX-6,NewY-8+i,BloodColor+bblack,'@');for(inti=1;i<=EmptyBlock;i++)TP(NewX-6,NewY-8+FullBlock+i,fgray+bblack,'O');}}if(x-7>=WINDOWC)isExist=0;}/*Onlyonebosssowedon'thavetomakethefunctionout*/voidMovePrint(){intt=clock();if(LastMoveTime>=t-(1000-MoveSpeed))return;LastMoveTime=t;/*Changethedirection*/if(rand()%10==0)dy=ConstNewDy[rand()%3];intNewX=x+dx,NewY=y+dy;if(UFOCrash(NewX,NewY)||NewY-7<0||NewY+7>=WINDOWW)for(inti=0;i<3;i++){dy=ConstNewDy[rand()%3];NewX=x+dx,NewY=y+dy;if(!(UFOCrash(NewX,NewY)||NewY-7<0||NewY+7>=WINDOWW))break;}if(UFOCrash(NewX,NewY)||NewY-7<0||NewY+7>=WINDOWW)return;if(InRange(x))TP(x,y,OC,'');if(InRange(NewX))TP(NewX,NewY,OC,'V');if(InRange(x-1))TP(x-1,y-1,OC,"");if(InRange(NewX-1))TP(NewX-1,NewY-1,OC,'\\'),TP(NewX-1,NewY,fgray+bblack,'O'),TP(NewX-1,NewY+1,OC,'/');if(InRange(x-2))TP(x-2,y-7,OC,"");if(InRange(NewX-2))TP(NewX-2,NewY-7,fgray+bblack,'V'),TP(NewX-2,NewY-2,OC,'\\'),TP(NewX-2,NewY-1,fgray+bblack,"OOO"),TP(NewX-2,NewY+2,OC,'/'),TP(NewX-2,NewY+7,fgray+bblack,'V');if(InRange(x-3))TP(x-3,y-7,OC,"");if(InRange(NewX-3))TP(NewX-3,NewY-7,OC,"+---\\XX"),TP(NewX-3,NewY,fgray+bblack,'O'),TP(NewX-3,NewY+1,OC,"XX/---+");if(InRange(x-4))TP(x-4,y-4,OC,"");if(InRange(NewX-4))TP(NewX-4,NewY-4,OC,'\\'),TP(NewX-4,NewY-3,fgray+bblack,"OO"),TP(NewX-4,NewY-1,OC,"XXX"),TP(NewX-4,NewY+2,fgray+bblack,"OO"),TP(NewX-4,NewY+4,OC,"/");if(InRange(x-5))TP(x-5,y-6,OC,"");if(InRange(NewX-5))TP(NewX-5,NewY-6,OC,"[-----------]");BloodRefresh(NewX,NewY);x=NewX,y=NewY;}voidShot(){intt=clock();if(LastShotTime1<t-(100-ShotSpeed1)){LastShotTime1=t;if(x-1>=0){Ammo.insert(newBullet(1,x-1,y-7,4,1,0));Ammo.insert(newBullet(1,x-1,y+7,4,1,0));}}if(LastShotTime2<t-(100-ShotSpeed2-500)){LastShotTime2=t,flag2=1;TP(x,y,fred+flight+bgray,'V');}if(flag2&&t>=LastShotTime2+500){flag2=0;if(x+1>=0)Ammo.insert(newBullet(1,x+1,y,5,1,0));}}}Boss;/*There'sanawfulproblemthatset<UFO*>EnemywillbeuseinthestructUFObutitneedsthedeclarationofstructUFOsowecanneitherputitinfrontofthestructUFOnorputitafterthestructUFO...*//*SowehavetogetthefunctionCrashoutofthestructUFO.*//*Eatingshit*//*TocheckifitwillhitanotherUFO*/voidUFOMovePrint(UFO&,set<UFO*>::iterator);boolUFOCrash(UFOme,intNewX,intNewY,set<UFO*>::iteratorID){for(set<UFO*>::iteratorit=Enemy.begin();it!=Enemy.end();it++){intox=(*it)->x,oy=(*it)->y;if(it==ID||ox<NewX)continue;if(NewX<=ox+4&&NewX>=ox-4&&NewY>=oy-8&&NewY<=oy+8){/*avoiddisfluency*/UFO*New=*it;UFOMovePrint(*New,it);return1;}}if(BossFlag&&NewX<=Boss.x&&NewX>=Boss.x-5&&NewY>=Boss.y-9&&NewY<=Boss.y+9)return1;return0;}boolUFOCrash(intNewX,intNewY){for(set<UFO*>::iteratorit=Enemy.begin();it!=Enemy.end();it++){intox=(*it)->x,oy=(*it)->y;if(ox<NewX)continue;if(NewX<=ox+9&&NewX>=ox-9&&NewY>=oy-9&&NewY<=oy+9)return1;}return0;}//OwnShotTimes,OwnLoseBlood,OwnShotOnTimes;doublePerformance(){//(0,5]doublep1=double(OwnShotOnTimes)/max(OwnShotTimes,1);doublep2=max(double(Own.FullBlood-OwnLoseBlood)/Own.FullBlood,0.0);returnmin((p1+p2)*2.5,4.999999);}voidBossRefresh(){Boss.MovePrint();intt=clock();if(!Boss.isStop)Boss.Shot();if(!Boss.isStop&&Boss.LastStopTime+Boss.StopTime+Boss.StopCD<=t)Boss.LastStopTime=t,Boss.isStop=1;if(Boss.isStop&&t-Boss.LastStopTime>=Boss.StopTime)Boss.isStop=0;}voidInit(){srand((unsigned)time(NULL));//SetWindow("HPF",WINDOWC+12,WINDOWW+45,0,500);SetWindow("HPF",WINDOWC+2,WINDOWW+40);HindCursor();TP(0,0,OC,"+---------------------------------------------------------------------------------------------+");TP(2,(WINDOWW+40)/2-7,OC,"HapeFlyingGame");TP(7,0,OC,"+---------------------------------------------------------------------------------------------+");ButtonStart=NewButton(4,(WINDOWW+40)/2-4,OC,">Start<");ButtonMore=NewButton(5,(WINDOWW+40)/2-4,OC,">More<");while(1){if(Preserve(Start)){Own.Init(0);break;}if(Preserve(More)){TP(6,3,fred,"Inputthepassword:");gto(6,22),color(fgray);charKey[15];fgets(Key,10,stdin);if(!strcmp(Key,"cxhsdsb\n")){Own.Init(1);break;}fflush(stdin);color(OC);system("cls");TP(0,0,OC,"+---------------------------------------------------------------------------------------------+");TP(2,(WINDOWW+40)/2-7,OC,"HapeFlyingGame");TP(7,0,OC,"+---------------------------------------------------------------------------------------------+");}Sleep(50);}color(OC);system("cls");}/*Meettheawfulproblemagain*/boolisHit(intNewX,intNewY,intType){if(Type==1||Type==3){intDM=int(ConstBulletDamage[Type]*Own.AddAtack);for(set<UFO*>::iteratorit=Enemy.begin();it!=Enemy.end();it++){if((*it)->Hit(NewX,NewY)){/*Mentiontheorder,oritwon'tbecleared*/UFO*t=*it;t->Flash();t->Blood=max(t->Blood-DM,0);t->BloodRefresh(t->x,t->y);if(t->Blood<=0){Own.Money+=t->Money;MoneyFlash=1;ScoreFlash=1;t->isExist=0;t->ClearPrint();intAdd=t->Score;/*Buff4*//*Doublescore*/if(Own.Buffs[4]){if(Own.GetBuffTime[4]+ConstBuffLastTime[4]>=clock()){Own.Buffs[4]=0;Own.GetBuffTime[4]=0;}Add+=t->Score;}if(BossFlag)Add/=10;Own.Score+=Add;}return1;}}if(BossFlag&&Boss.Hit(NewX,NewY)){Boss.Flash();Boss.Blood=max(Boss.Blood-DM/2,0);Boss.BloodRefresh(Boss.x,Boss.y);OwnShotOnTimes++;if(Boss.Blood<=0)Boss.Die(),BossFlag=0;return1;}}elseif(Own.Hit(NewX,NewY)){Own.Flash(fred+flight);OwnLoseBlood+=min(Own.Blood,ConstBulletDamage[Type]);Own.Blood=max(Own.Blood-ConstBulletDamage[Type],0);Own.BloodRefresh(Own.x,Own.y);if(Own.Blood<=0)GameOver();return1;}return0;}#defineMAX_GRADE10constintConstUpgradeCost[MAX_GRADE+5]={10,20,50,100,200,500,1000,2000,5000,10000,INF};constcharConstUpgradeCostStr[MAX_GRADE+5][10]={"(M10)","(M20)","(M50)","(M100)","(M200)","(M500)","(M1000)","(M2000)","(M5000)","(M10000)","(MINF)"};constintConstGradeColor[MAX_GRADE+5]={fgreen+flight+bblack,fgreen+flight+bblack,fgreen+bblack,fblue+flight+bblack,fblue+flight+bblack,fblue+bblack,fyellow+flight+bblack,fyellow+bblack,fyellow+bblack,fred+flight+bblack,fred+bblack,fred+bblack};constcharConstGradeName[MAX_GRADE+5][20]={"[G0]","[G1]","[G2]","[G3]","[G4]","[G5]","[G6]","[G7]","[G8]","[G9]","[G10]"};intmain(){//GameOver();//ColorPrint();//getchar();Init();HWNDhd;hd=GetForegroundWindow();TP(12,WINDOWW+3,OC,"---------DetailsofBuffs---------");TP(18,WINDOWW+3,OC,"----------------------------------");//Own.Blood=100;intcnt=1;BossFlag=0;intLastT=clock()/1000-2,LastMoney=-1;BEGINTIME=clock();int_____=0,STOP=0,LastPreserveTime=-INF;ButtonAddFullBlood,AddAttack,AddShotSpeed;intFullBloodGrade=0,AttackGrade=0,ShotSpeedGrade=0;stringAddFullBloodTip(">Addyourmaxbloodby500"),AddAttackTip(">Addyourattackby10%"),AddShotSpeedTip(">Addyourshotspeedby10%");AddFullBlood=NewButton(5,WINDOWW+3,OC,">Addyourmaxbloodby200");AddAttack=NewButton(6,WINDOWW+3,OC,">Addyourattackby10%");AddShotSpeed=NewButton(7,WINDOWW+3,OC,">Addyourshotspeedby5%");//Own.Money=10000000;while(1){if(!STOP){if(_____%10==0){gto(0,0),color(OC);for(inti=1;i<=WINDOWW+40;i++)putchar('-');gto(WINDOWC,0),color(OC);for(inti=1;i<=WINDOWW+40;i++)putchar('-');}_____++;POINTk;GetPos(k);Own.MovePrint(min(max(int(k.x)-3,1),WINDOWC-1),min(max(int(k.y),0),WINDOWW-1));if(KEY_DOWN(MOUSE_MOVED))Own.Shot();BulletsRefresh();if(BossFlag)BossRefresh();UFORefresh();BuffRefresh(),BuffTipRefresh();if(ScoreFlash){ScoreFlash=0;TP(10,WINDOWW+3,fred+flight+bwhite,"["),TP(10,WINDOWW+5,OC-bblack+bwhite,"Score:"),gto(10,WINDOWW+12),color(OC-bblack+bwhite),printf("%04lld+%08lld",Own.Score,Own.BossScore),TP(10,WINDOWW+27,fred+flight+bwhite,"]");Sleep(100);}TP(10,WINDOWW+3,fred+flight+bblack,"["),TP(10,WINDOWW+5,OC,"Score:"),gto(10,WINDOWW+12),color(OC),printf("%04lld+%08lld",Own.Score,Own.BossScore),TP(10,WINDOWW+27,fred+flight+bblack,"]");intT=(clock()-BEGINTIME)/1000;if(T!=LastT){TP(9,WINDOWW+3,fred+flight+bblack,"["),TP(9,WINDOWW+5,OC,"Time:"),gto(9,WINDOWW+11),color(OC),printf("%05d",T),TP(9,WINDOWW+16,fred+flight+bblack,"]");LastT=T;}}if(Own.Money!=LastMoney){if(MoneyFlash){MoneyFlash=0;TP(1,WINDOWW+3,fred+flight+bwhite,"["),TP(1,WINDOWW+6,OC-bblack+bwhite,"Money:"),gto(1,WINDOWW+13),color(OC-bblack+bwhite),printf("%08d",LastMoney=Own.Money),TP(1,WINDOWW+21,fred+flight+bwhite,"]");Sleep(100);}TP(1,WINDOWW+3,fred+flight+bblack,"["),TP(1,WINDOWW+6,OC,"Money:"),gto(1,WINDOWW+13),color(OC),printf("%08d",LastMoney=Own.Money),TP(1,WINDOWW+21,fred+flight+bblack,"]");}if(clock()-LastPreserveTime>=100){LastPreserveTime=clock();if(Preserve(AddFullBlood)){if(Own.Money>=ConstUpgradeCost[FullBloodGrade]){Own.Money-=ConstUpgradeCost[FullBloodGrade];Own.FullBlood+=200;MoneyFlash=1;FullBloodGrade++;}}if(Preserve(AddAttack)){if(Own.Money>=ConstUpgradeCost[AttackGrade]){Own.Money-=ConstUpgradeCost[AttackGrade];Own.AddAtack+=0.1;MoneyFlash=1;AttackGrade++;}}if(Preserve(AddShotSpeed)){if(Own.Money>=ConstUpgradeCost[ShotSpeedGrade]){Own.Money-=ConstUpgradeCost[ShotSpeedGrade];Own.AddShotSpeed+=0.05;MoneyFlash=1;ShotSpeedGrade++;}}TP(5,WINDOWW+31,ConstGradeColor[FullBloodGrade+1],ConstUpgradeCostStr[FullBloodGrade]);TP(2,WINDOWW+3,OC,"MaxBlood:"),gto(2,WINDOWW+18),color(OC),printf("%06d",Own.FullBlood);TP(2,WINDOWW+25,ConstGradeColor[FullBloodGrade],ConstGradeName[FullBloodGrade]);Own.MovePrint(Own.x,Own.y,0);TP(6,WINDOWW+31,ConstGradeColor[AttackGrade+1],ConstUpgradeCostStr[AttackGrade]);TP(3,WINDOWW+3,OC,"Attack:"),gto(3,WINDOWW+18),color(OC),printf("%06d",int((Own.Buffs[3]?ConstBulletDamage[3]:ConstBulletDamage[1])*Own.AddAtack));TP(3,WINDOWW+25,ConstGradeColor[AttackGrade],ConstGradeName[AttackGrade]);TP(7,WINDOWW+31,ConstGradeColor[ShotSpeedGrade+1],ConstUpgradeCostStr[ShotSpeedGrade]);TP(4,WINDOWW+3,OC,"AttackSpeed:"),gto(4,WINDOWW+18),color(OC),printf("%06d",int(Own.ShotSpeed*Own.AddShotSpeed));TP(4,WINDOWW+25,ConstGradeColor[ShotSpeedGrade],ConstGradeName[ShotSpeedGrade]);}if(kbhit()){charc=getch();if(c==''){if(!STOP){TP(WINDOWC/2-1,WINDOWW/2-16,OC,"+----------------------------------+");TP(WINDOWC/2,WINDOWW/2-16,OC,"|Pressspacebartocontinue.|");TP(WINDOWC/2+1,WINDOWW/2-16,OC,"+----------------------------------+");STOP=1;}else{TP(WINDOWC/2-1,WINDOWW/2-16,OC,"");TP(WINDOWC/2,WINDOWW/2-16,OC,"");TP(WINDOWC/2+1,WINDOWW/2-16,OC,"");STOP=0;RECTW;GetWindowRect(hd,&W);SetCursorPos(W.left+Own.y*8+10,W.top+Own.x*16+80);}}}/*Boos*/if(!BossFlag&&Own.NeedBoss()){//if(!BossFlag)Sleep(200);flash(3);OwnShotTimes=OwnLoseBlood=OwnShotOnTimes=0;EnemyClear();//UFORefreshTime=5000;//BuffAppearCD=5000;Boss.Init(cnt);BossFlag=1;cnt++;}}}

声明:本文为CSDN博主「ixRic」的原创文章,原文链接:/C0102/article/details/102727963

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。