定义四个函数实现飞机大战

#include<stdio.h>
#include<windows.h>
#include<conio.h>
//定义全局变量
int high,width;                     //定义边界
int position_x,position_y;          //飞机位置
int bullet_x,bullet_y;              //子弹位置
int enemy_x,enemy_y;
int score;
int flag;                           //飞机状态
void gotoxy(int x,int y)            //光标移动到(x,y)位置
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);COORD pos;pos.X = x;pos.Y = y;SetConsoleCursorPosition(handle,pos);
}
void HideCursor() // 用于隐藏光标
{CONSOLE_CURSOR_INFO cursor_info = {1, 0};  // 第二个值为0表示隐藏光标SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}void startup()                     //数据初始化
{high=18;width=26;position_x=high-3;             position_y=width/2;bullet_x=0;bullet_y=position_y; enemy_x=0;enemy_y=position_y;score=0;flag=0;                          //飞机完好 HideCursor();
}
void show()                         //显示界面
{int i,j;for(i=0;i<high;i++){for(j=0;j<width;j++){if(flag)break;else if((i==position_x)&&(j==position_y))       //飞机坐标 printf("*");else if((i==enemy_x)&&(j==enemy_y))                //敌机坐标 printf("*");else if((i==bullet_x)&&(j==bullet_y))          //子弹坐标 printf("|");else if ((j==width-1)||(i==high-1)||(j==0)||(i==0))                //打印边界 printf("#");elseprintf(" ");}printf("\n"); }printf("\n");if((position_x==enemy_x)&&(position_y==enemy_y)){flag=1;                           //飞机撞毁 游戏结束 printf("得分: %d\n",score);printf("游戏结束");}elseprintf("得分: %d\n",score);
}
void withoutInpute()                        //与用户输入无关
{if(bullet_x>0)                          //子弹上升效果 bullet_x--;if((bullet_x==enemy_x)&&(bullet_y==enemy_y))        //子弹命中敌机 {score++;bullet_x=-1;   enemy_x=1;enemy_y=2+rand()%width-2;} static int speed;if(speed<30)                    //减慢敌机速度,不影响飞机和子弹速度 speed++;if(speed==30){if(enemy_x<high)enemy_x++;else {enemy_x=0;enemy_y=2+rand()%width-2;}speed=0;}}
void withInpute()                       //与用户输入有关
{char input;if(kbhit())                                     //控制飞机方向 {input=getch();if((input=='w')&&position_x>1)position_x--; if((input=='s')&&position_x<high-2)position_x++;       if((input=='a')&&position_y>1)position_y--;  if((input=='d')&&position_y<width-2)position_y++;if(input==' '){bullet_x=position_x-1;bullet_y=position_y;}}
}
int main()
{system("color 2f");startup();                    // 数据初始化while(1)                    //  游戏循环执行{gotoxy(0,0);show();                  // 显示画面withoutInpute();     // 与用户输入无关的更新withInpute();          // 与用户输入有关的更新}}  

C语言实现简单的飞机大战相关推荐

  1. C语言飞机大战程序思路,C语言实现简单的飞机大战

    C语言实现简单的飞机大战 #include #include #include //定义全局变量 int high,width;//定义边界 int position_x,position_y;//飞 ...

  2. 【C语言游戏】微信飞机大战 | PlaneFight(EasyX,drawAlpha绘制透明贴图,计时器,计帧器,游戏难度自动调整,接受鼠标消息,源码素材免费分享)

    一.数据结构介绍 struct aircraft //所有飞机的结构体 typedef struct aircraft{ int type;//飞机类型 int HP;//剩余血量 int bomb_ ...

  3. 简单制作飞机大战游戏。

    飞机大战(初级)(一) 因为最近有做这个的实训,每天一点点的学习.因为自己也是个初学者,希望自己所做的这些也能帮助简单学习java的朋友,这是第一次在这上面去分享这些,一方面希望自己能进步,能交更多的 ...

  4. 用java写一个简单的飞机大战游戏

    制作一个简单的飞机大战 注意!!!!!,图片素材在我的资源里有. 下面代码排序,非先后顺序.请看清楚类名 Airplane类 package Flyplane;public class Airplan ...

  5. Java学习之路:简单的飞机大战游戏(敌机下落篇)

    在实现这个游戏之前,我们首先需要知道项目可能要用到哪些知识点: 重绘,线程,双缓冲,数据结构的应用 差不多是这大概有这些,如果不够的话我们再加. 首先,我们应该实现敌机下落,在这里大概思路和利用线程使 ...

  6. 用python实现简单的飞机大战小游戏

    1.下载一个包 PySide2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-none-win_amd64 如果下载错误,就先下载shiboken2-5 ...

  7. 用C语言写一个简单的飞机大战游戏(用到easyx图形库)

    学习内容:1.背景的运动 2.飞机爆炸效果 3.透明贴图工具 目录 一.需要用到的头文件.全局变量和一些函数.结构体 二.数据初始化以及图片处理 三.主体 四.物体碰撞 五.游戏运行 六.透明贴图工具 ...

  8. 最简单的飞机大战小游戏(C语言实现)

    思路分析 所谓飞机射击类的游戏,就是关于两个对象之间的行动而产生的一系列联系,对于我们的飞机而言,要实现移动和射击这最简单的两种行为,而我们的敌人--靶子只需要出现并在识别到飞机的射击行为后消失就好, ...

  9. 使用cocos2d-android做最简单的飞机大战

    什么是cocos2d-android 用一句话简单来说,cocos2d-android就是cocos引擎的java版本的API. 优缺点 其优点是容易使用和入门,不需要使用其他语言交叉编译,其开发和调 ...

最新文章

  1. 优秀Java开发者的10条共性
  2. php实现支付宝支付接口,PHP实现个人支付宝支付开发(二)
  3. C/S和B/S的区别
  4. 韵乐x5最佳参数手动_4种超参数调整技术及其局限性
  5. Python开发技巧-使用Python生成HTML表格
  6. [深入React] 1. 开发环境搭建
  7. Backpropagation
  8. vue-html5-editor接收数据,在vue中获取wangeditor的html和text的操作
  9. CCNA学习要点,希望能对初学者有帮助
  10. 使用正则表达式实现网页爬虫的思路详解
  11. 我在迷你控制台风行一时
  12. SQL一对多,子表关联查询
  13. 下载图片 getInputStream、available()问题
  14. 创芯科技-CAN收发器使用
  15. Python爬虫实战之爬淘宝商品并做数据分析
  16. 删除笔记本电脑的EISA分区
  17. 《A Transformer-based joint-encoding for Emotion Recognition andSentiment Analysis》论文翻译
  18. 提高女性区块链采用率,真正实现普遍接受
  19. 前方高能 | 如何优化企业“数据消费“策略
  20. 美国专利法中方法权要(method)直接侵权的考量

热门文章

  1. WinLicense3.0过KEY时间限制(随笔)
  2. Mac安装CAJViewer
  3. 真正的ps切图方法(前端必看)
  4. 全网最通俗易懂的聚类算法!嘿,来聚个类!
  5. 在HDWiki中插入word文档的方法
  6. XML无法解析大字段数据、富文本数据
  7. 修改ubuntu的桌面路径为英文
  8. 防近视产品区分LED防蓝光原理
  9. AC电源品字插座和空开接线图
  10. hrbust 2382(数位dp+二分)