C語(yǔ)言實(shí)現(xiàn)飛機(jī)小游戲
更新時(shí)間:2020年12月28日 17:13:02 作者:xiaoChhhhh
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)飛機(jī)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)飛機(jī)小游戲的具體代碼,供大家參考,具體內(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;飛機(jī)2;子彈3;敵機(jī)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)場(chǎng)框架 { 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()//隱藏光標(biāo) { CONSOLE_CURSOR_INFO cursor_info={1,0};//0表示對(duì)光標(biāo)的隱藏 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)//敵機(jī)出界 { 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()//對(duì)按鍵的處理以 { char input; if(kbhit())//if(kbhit)判斷鍵盤(pán)是否進(jìn)行操作 { input=getch(); if((input=='w')&&(zdj_x>1))//防止飛機(jī)走出戰(zhàn)場(chǎng)框架 { 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()//對(duì)數(shù)組中對(duì)應(yīng)數(shù)的字符表達(dá),繪制地圖 { 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'進(jìn)行移動(dòng)"); } int main()//代碼總運(yùn)行 { system("color a4");//a控制背景色4控制前景色 start(); while(1) { gotoxy(0,0);//使光標(biāo)處于(0,0)位置 HideCursor(); startMAP(); show(); upguize(); upinput(); } return 0; }
游戲界面
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
C語(yǔ)言詳細(xì)講解qsort函數(shù)的使用
排序方法有很多種:選擇排序,冒泡排序,歸并排序,快速排序等。看名字都知道快速排序是目前公認(rèn)的一種比較好的排序算法。因?yàn)樗俣群芸?,所以系統(tǒng)也在庫(kù)里實(shí)現(xiàn)這個(gè)算法,便于我們的使用。這就是qsort函數(shù)2022-04-04opencv3/C++ 使用Tracker實(shí)現(xiàn)簡(jiǎn)單目標(biāo)跟蹤
今天小編就為大家分享一篇opencv3/C++ 使用Tracker實(shí)現(xiàn)簡(jiǎn)單目標(biāo)跟蹤,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12基于Matlab實(shí)現(xiàn)繪制3D足球的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Matlab實(shí)現(xiàn)繪制3D足球,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下2022-11-11C++右值引用與move和forward函數(shù)的使用詳解
為了支持移動(dòng)操作,新標(biāo)準(zhǔn)引入了一種新的引用類(lèi)型——右值引用(rvalue reference)。所謂右值引用就是必須綁定到右值的引用,這篇文章主要介紹了C++右值引用與move和forward的使用2022-08-08