C语言学习网

使用C语言怎么编写一个飞机大战小游戏

发表于:2022-08-12 作者:安全数据网编辑
编辑最后更新 2022年08月12日,使用C语言怎么编写一个飞机大战小游戏?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体内容如下#include#include int

使用C语言怎么编写一个飞机大战小游戏?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

具体内容如下

#include#include 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;}

看完上述内容,你们掌握使用C语言怎么编写一个飞机大战小游戏的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0