时间:2021-06-15 09:15:57 | 栏目:C代码 | 点击:次
本文实例为大家分享了C语言实现飞机小游戏的具体代码,供大家参考,具体内容如下
#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()//设置初始值 { zdj_x=15; zdj_y=20; zd_x=0; zd_y=20; dj_x=2; dj_y=15; score=0; } void startMAP()//绘制战场框架 { 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()//游戏规则(不唯一)如果有其他想法可以加入 { int i,j; if(zd_x>0)//子弹单轨 { zd_x--; } if((zd_x==dj_x)&&(zd_y==dj_y+1))//打中规则 { 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;//静态控制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))//防止飞机走出战场框架 { 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()//对数组中对应数的字符表达,绘制地图 { 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; }
游戏界面