C语言实现Flappy Bird小游戏
本文实例为大家分享了C语言实现FlappyBird小游戏的具体代码,供大家参考,具体内容如下
#include#include #include #include #include /********函数变量声明********/ #definePR_Boxprintf("■") #definePR_Goldprintf("★") #definePR_Agprintf("☆") #definePR_FBirdprintf("Ю") #definePR_DBirdprintf("Ф") #definePR_Landprintf("┳┳┯") #definePR_Bg_TLprintf("╔") #definePR_Bg_TRprintf("╗") #definePR_Bg_DLprintf("╚") #definePR_Bg_DRprintf("╝") #definePR_Bg_Xprintf("═") #definePR_Bg_Yprintf("║") #definePR_Blankprintf(""); intGrade=1,C_Gold=0,C_Ag=0,Score=0,Delay_time=1000,Max_blank=9,Distance=18; typedefstructBirds{ intx,y; intcondition; }Birds; Birds*Bird; typedefstructBg{ intx,y; intl_blank; intreward[9]; structBg*pri; structBg*next; }Bg; Bg*Bg1; voidPosition(intx,inty){ COORDpos={ x-1,y-1 }; HANDLEOut=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(Out,pos); } voidCreatBird(){ Bird->x=41; Bird->y=10; Bird->condition=0; } voidCreatBg(){ Bg*Bg2=(Bg*)malloc(sizeof(Bg)); Bg1->x=90; Bg1->y=8; Bg2->x=Bg1->x+Distance; Bg2->y=9; Bg1->l_blank=Max_blank-Grade; Bg2->l_blank=Max_blank-Grade; Bg1->next=Bg2; Bg1->pri=Bg2; Bg2->next=Bg1; Bg2->pri=Bg1; } voidInsertBg(Bg*p){ inttemp; Bg*Bgs=(Bg*)malloc(sizeof(Bg)); Bgs->x=p->pri->x+Distance; Bgs->l_blank=Max_blank-Grade; srand((int)time(0)); temp=rand(); if(temp%2==0)//++ { if((temp%4+p->pri->y+Max_blank-Grade)<21) Bgs->y=p->pri->y+temp%4; else Bgs->y=p->pri->y; }else{ if((p->pri->y-temp%4)>2) Bgs->y=p->pri->y-temp%4; else Bgs->y=p->pri->y; } Bgs->pri=p->pri; Bgs->next=p; p->pri->next=Bgs; p->pri=Bgs; } voidCheck_Bg(Bg*q){ Bg*p=q; inti=0,temp; while(++i<=5){ if(p->x>-4) p=p->next; else{ srand((int)time(0)); temp=rand(); if(temp%2==0)//++ { if((temp%4+p->y+Max_blank-Grade)<21) p->y=p->y+temp%4; else p->y=p->y; p->x=p->pri->x+Distance; p->l_blank=Max_blank-Grade; }else{ if((p->y-temp%4)>2) p->y=p->y-temp%4; else p->y=p->y; p->x=p->pri->x+Distance; p->l_blank=Max_blank-Grade; } } } } voidLoop_Bg(Bg*q){ Bg*p=q; inti=0; while(++i<=5){ p->x=p->x-1; p=p->next; if(Bird->x==p->x){ Score+=1; if(Score%4==0&&Grade<4) Grade++; } } } voidPrt_Bg(Bg*q){ Bg*p=q; inti=0,k,j; while(++i<=5){ if(p->x>0&&p->x<=78){ for(k=2;k y;k++){ Position(p->x+1,k); PR_Box; PR_Box; PR_Blank } Position(p->x,p->y); PR_Box; PR_Box; PR_Box; PR_Blank; Position(p->x,p->y+p->l_blank); PR_Box; PR_Box; PR_Box; PR_Blank; k=k+p->l_blank+1; for(k;k<=22;k++){ Position(p->x+1,k); PR_Box; PR_Box; PR_Blank; } Position(p->x,23); for(k=1;k next; if(p->x==0){ for(j=2;j y;j++){ Position(p->x+1,j); PR_Blank; PR_Blank; } Position(p->x+1,p->y); PR_Blank; PR_Blank; PR_Blank; Position(p->x+1,p->y+Max_blank-Grade); PR_Blank; PR_Blank; PR_Blank; j=j+Max_blank-Grade+1; for(j;j<=22;j++){ Position(p->x+1,j); PR_Blank; PR_Blank; } } } } voidPrtBg(){ inti; Position(1,1); PR_Bg_TL; Position(79,1); PR_Bg_TR; Position(1,24); PR_Bg_DL; Position(79,24); PR_Bg_DR; for(i=3;i<=78;i+=2){ Position(i,1); PR_Bg_X; Position(i,24); PR_Bg_X; } } voidPrtBird(){ Position(Bird->x,Bird->y-1); PR_Blank; Position(Bird->x,Bird->y); PR_FBird; Position(38,2); printf("Score:%d",Score); } intCheckYN(Bg*q){ Bg*p=q; inti=0; while(++i<=5){ if(Bird->y>23) return0; if(Bird->x==p->x&&Bird->y<=p->y) return0; if((Bird->x==p->x||Bird->x==p->x+1||Bird->x==p->x+2)&&Bird->y==p->y) return0; if(Bird->x==p->x&&Bird->y>p->y+p->l_blank) return0; if((Bird->x==p->x||Bird->x==p->x+1||Bird->x==p->x+2)&&Bird->y==p->y+ p->l_blank) return0; p=p->next; } return1; } voidPrtfirst(){ printf("══════════════════════════════════════\n"); printf("■■■■\n"); printf("■■■■\n"); printf("■■■■C语言版FlappyBird\n"); printf("■■■■瞎搞人:yyposs\n"); printf("■■■■瞎搞日期:2014.2\n"); printf("■■■■耗时:4小时\n"); printf("■■■■■游戏说明:\n"); printf("■■1-按上箭头使鸟起飞\n"); printf("■■2-等级越高,难度越大!\n"); printf("Ю■■■\n"); printf("\n"); printf("■■■欢迎各路大神一起探讨\n"); printf("■■\n"); printf("■■\n"); printf("■■■■■【无版权,随意修改】\n"); printf("■■■■\n"); printf("■■Ф■■\n"); printf("■■■■\n"); printf("■■■■\n"); printf("■■■■\n"); printf("■■■■\n"); printf("┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳┳┯┳\n"); system("pause"); Position(1,1); inti=0; while(i++<40*25) PR_Blank; } voidmain(){ inti=0; Bird=(Birds*)malloc(sizeof(Birds)); Bg1=(Bg*)malloc(sizeof(Bg)); Prtfirst(); PrtBg(); CreatBg(); InsertBg(Bg1); InsertBg(Bg1); InsertBg(Bg1); CreatBird(); while(1){ if(!CheckYN(Bg1)) break; Check_Bg(Bg1); Prt_Bg(Bg1); PrtBird(); Loop_Bg(Bg1); Bird->y=Bird->y+1; if(GetAsyncKeyState(VK_UP)){ Position(Bird->x,Bird->y-1); PR_Blank; Bird->y=Bird->y-4; } while(i++<500);{ Sleep(100); } i=0; } Position(38,10); printf("YouLost!"); Position(1,25); system("pause"); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。