您好,登錄后才能下訂單哦!
使用C語言怎么編寫一個飛機大戰(zhàn)小游戲?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
具體內(nèi)容如下
#include<stdio.h> #include<windows.h> int zdj_x,zdj_y; int zd_x,zd_y; int dj_x,dj_y; int speed; int map[21][41]; int score; int H=20,C=40; //墻是1;飛機2;子彈3;敵機4; void start()//設(shè)置初始值 { zdj_x=15; zdj_y=20; zd_x=0; zd_y=20; dj_x=2; dj_y=15; score=0; } void startMAP()//繪制戰(zhàn)場框架 { int i, j; for (i = 1; i <=19; i++) { map[i][1] = 1; for (j = 2; j <=39; j++) { map[i][j] = 0; map[i][40] = 1; } } i = 20; for (j = 1; j <= 40; j++) { map[i][j] = 1; } map[zd_x][zd_y] = 3; map[zdj_x ][zdj_y] = 2; map[dj_x][dj_y+1] = 4; } void HideCursor()//隱藏光標 { CONSOLE_CURSOR_INFO cursor_info={1,0};//0表示對光標的隱藏 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info); } void gotoxy(int x,int y)//清屏,使屏幕保持 { HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.X = x; pos.Y = y; SetConsoleCursorPosition(handle,pos); } void upguize()//游戲規(guī)則(不唯一)如果有其他想法可以加入 { int i,j; if(zd_x>0)//子彈單軌 { zd_x--; } if((zd_x==dj_x)&&(zd_y==dj_y+1))//打中規(guī)則 { score++; dj_x=0; dj_y=rand()%40; zd_x=0; } if(dj_x>20)//敵機出界 { dj_x=0; dj_y=rand()%40; } static int speed=0;//靜態(tài)控制speed if(speed<10)//速度控制 { speed++; } if(speed==10) { if(dj_x<20) dj_x++; else { dj_x=0; dj_y=rand()%39+1; } speed=0; } } void upinput()//對按鍵的處理以 { char input; if(kbhit())//if(kbhit)判斷鍵盤是否進行操作 { input=getch(); if((input=='w')&&(zdj_x>1))//防止飛機走出戰(zhàn)場框架 { zdj_x--; } if((input=='a')&&(zdj_y>2)) { zdj_y--; } if((input=='s')&&(zdj_x<19)) { zdj_x++; } if((input=='d')&&(zdj_y<39)) { zdj_y++; } if(input==' ') { zd_x=zdj_x-1; zd_y=zdj_y; } } } void show()//對數(shù)組中對應(yīng)數(shù)的字符表達,繪制地圖 { int i,j; for(i=1;i<=20;i++) { for(j=1;j<=40;j++) { if(map[i][j]==0) { printf(" "); } if(map[i][j]==1) { printf("+"); } if(map[i][j]==2) { printf("*"); } if(map[i][j]==3) { printf("|"); } if(map[i][j]==4) { printf("#"); } } printf("\n"); } printf("\n%d\n",score); printf("按'w''a''s''d'進行移動"); } int main()//代碼總運行 { system("color a4");//a控制背景色4控制前景色 start(); while(1) { gotoxy(0,0);//使光標處于(0,0)位置 HideCursor(); startMAP(); show(); upguize(); upinput(); } return 0; }
看完上述內(nèi)容,你們掌握使用C語言怎么編寫一個飛機大戰(zhàn)小游戲的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。