c++游戏谷歌小恐龙
生活随笔
收集整理的這篇文章主要介紹了
c++游戏谷歌小恐龙
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這是一個不太像的《恐龍》
我設計了空中的小鳥,要小心!!!!!!
很難的!!!w鍵跳躍。
看到這兒,還不給我一個三連嗎?
好了,代碼來了。
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<time.h> #include<windows.h> #define N 80 #define up 72 #define left 75 #define right 77 #define down 80 void run(); void yn(); void print(int [][N]); void menu(); int scr[22][N]={0},pl=9,shit,width=70,score=0,death=0,jump_time=0,game_time=0,day=0,jump_height=0,shift_time=0; int main(){menu(); run(); }void drawplayer(int a[][N],int xlu,int ylu) {for(int i=1;i<=3;i++)a[xlu][ylu+i]=1;for(int i=0;i<=4;i++)a[xlu+1][ylu+i]=1;a[xlu+2][ylu+1]=1;a[xlu+2][ylu+3]=1; }bool search_player(int a[][N],int xlu,int ylu) {for(int i=1;i<=3;i++)if(a[xlu][ylu+i]==2 || a[xlu][ylu+i]==3)return false;for(int i=0;i<=4;i++)if(a[xlu+1][ylu+i]==2 || a[xlu+1][ylu+i]==3)return false;if(a[xlu+2][ylu+1]==2 || a[xlu+2][ylu+1]==3)return false;if(a[xlu+2][ylu+3]==2 || a[xlu+2][ylu+3]==3)return false;return true; }void days(int q,int a[][N]){//太陽&月亮for(int i=3;i<=7;i++){for(int j=51;j<=55;j++){a[i][j]=0;}}if(q==1){//月亮,開啟晝夜才有a[4][52]=4;a[7][52]=4;for(int i=53;i<=54;i++){a[4][i]=4;a[5][i]=4;a[6][i]=4;a[7][i]=4;}a[4][54]=0;a[7][54]=0;a[5][55]=4;a[6][55]=4;}else{for(int i=3;i<=7;i++){for(int j=51;j<=56;j++){a[i][j]=4;}}a[4][51]=0;a[4][56]=0;a[7][51]=0;a[7][56]=0; } }void print(int a[][N]){//繪圖函數COORD c={0,0};SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);int i,j;for(i=4;i<22;i++){a[i][width-1]=4; for(j=0;j<width;j++){ if(a[i][j]==0){printf(" ");} if(a[i][j]==1)printf("@");if(a[i][j]==2)printf("#");if(a[i][j]==3)printf("<");if(a[i][j]==4){printf("*");}if(i==4&&j==width-1)printf("score:%d",score/20);if(i==5&&j==width-1) printf("Press Esc to exit");} printf("\n"); } for(j=0;j<width;j++)printf("~"); } void yn(){//死亡界面system("cls"); system("color 07"); printf("\n"); printf("\n"); printf("\t\t\t\t *****GAME OVER*****\n\a"); printf("\t\t\t\t *****YOU DIED!***** \n");printf("\t\t\t\t*****YOUR SCORE:%4d*****\n\n",score/20); printf("\t\t\t press y to continue,n to close(y/n)?\n"); printf("\t\t\t"); end:;switch(getch()){case 'y': case 'Y':death=0,score=0,memset(scr,0,sizeof(scr)),run();break; case 'n': case 'N':break; default :goto end;break; } }void generate_block(int a[][N],int lala=rand()%6+1){//生成障礙,有三種依次為:從上至下的墻,飛彈,從下至上隨機高度的墻。。。if(lala==5){for(int i=0;i<=19;i++){a[i][69]=2;}}else if(lala==6){int hehe=rand()%5+1;if(hehe<=1){a[19][69]=3;}else if(hehe<=4){a[14][69]=3;}else if(hehe==5){a[21][69]=3;}}else{for(int i=0;i<=lala;i++)a[21-i][69]=2;} }void run() {//主函數//system("color 70");shit=0;day=0;system("cls");srand(time(0));while(1){score++;game_time++;if(game_time%60==0)//墻generate_block(scr);if(game_time%80==0)//飛彈generate_block(scr,6);//if(game_time/1000>=1 && day==0)//system("color 07"),game_time=0,day=1; //去掉這些注釋(run函數里的所有)可開啟晝夜更替(但我覺得不好看)。。。//else if(game_time/1000>=1 && day==1)//system("color 70"),game_time=0,day=0;days(day,scr);if(kbhit()) //讀取輸入switch(getch()){case down:case 's': case 'S':if(jump_time<=15)shift_time=20,jump_time=0;break;case up: case 'W': case 'w':if(jump_time<=0)jump_time=25,jump_height=-1,shift_time=0;break;case 13 :system("pause");break;}if(jump_time<=0 && shift_time<=0){//正常if(search_player(scr,19,pl))drawplayer(scr,19,pl);elsegoto end;//新科技goto...感覺比break好用...}else if(jump_time>0){//跳jump_time--;if(jump_time<10){jump_height--;}else if(jump_time>15){jump_height++;}if(search_player(scr,19-jump_height,pl)){drawplayer(scr,19-jump_height,pl);}elsegoto end;}else if(shift_time>0){//蹲shift_time--;if(search_player(scr,20,pl))drawplayer(scr,20,pl);elsegoto end;}for(int i=4;i<22;i++)//移墻for(int j=0;j<=80;j++){if(scr[i][j]==2){scr[i][j]=0;if(j-1>=0)scr[i][j-1]=2;}}for(int i=4;i<22;i++)//移飛彈,可見速度較墻快了一倍for(int j=0;j<=80;j++){if(scr[i][j]==3){scr[i][j]=0;if(scr[i][j-1]==1)goto end;else if(scr[i][j-2]==1)goto end;else if(j-2>=0)scr[i][j-2]=3;}}print(scr);for(int i=4;i<22;i++)for(int j=0;j<=80;j++){if(scr[i][j]==1)scr[i][j]=0;}}end:;yn(); } void menu(){system("color 07");ShowCursor(false);//這一節照抄,指消去光標HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFO cci;GetConsoleCursorInfo(hOut,&cci);cci.bVisible=false;SetConsoleCursorInfo(hOut,&cci);//一直到這里照抄 }886
總結
以上是生活随笔為你收集整理的c++游戏谷歌小恐龙的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌小恐龙:我还是那句话,我只要略微出手
- 下一篇: Thinkphp 生成海报和小程序二维码