C语言游戏开发——打飞机游戏2.0

本次打飞机游戏对上次的打飞机游戏2.0做了代码重构和升级

通过定义函数来实现多个功能

以下为代码主体

通过w a s d来控制飞机的移动

通过空格来发射子弹

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<Windows.h>int po_x, po_y;
int bu_x, bu_y;
int high, width;
int enemy_x, enemy_y;
int score;void HideCursor()
{CONSOLE_CURSOR_INFO cursor_info = { 1,0 };SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void startup()      //数据初始化
{high = 20;width = 30;po_x = high / 2;po_y = width / 2;bu_x = 0;bu_y = po_y;enemy_x = 0;enemy_y = po_y;score = 0;
}
void gotoxy(int x,int y)
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);COORD pos;pos.X = x;pos.Y = y;SetConsoleCursorPosition(handle, pos);
}
void show()     //显示画面
{gotoxy(0, 0);system("cls");int i,j;for (i = 0; i < high; i++){for (j=0; j< width;j++){if ((i == po_x) && (j == po_y)){printf("*");     //输出飞机*s}else if ((i==enemy_x)&&(j==enemy_y)){printf("@");       //输出敌人@}else if ((i == bu_x) && (j == bu_y)){printf("|");        //输出子弹|}else{printf(" ");     //输出空格}}printf("\n");}
}
void updateWithoutInput()
{if (bu_x > -1)bu_x--;if ((bu_x==enemy_x)&&(bu_y==enemy_y)){score++;   //分数加一enemy_x=-1;  //产生新的敌机enemy_y=rand()%width;bu_x=-2;  //子弹无效}if (enemy_x > high){enemy_x = -1;  //产生新的敌机enemy_y = rand() % width;}static int speed = 0;if (speed<10){speed++;}if (speed==10){enemy_x++;speed = 0;}
}
void updateWithInput()
{char input;if (_kbhit())     //判断是否有输入 {input = _getch();if (input == 'a')po_y--;if (input == 'd')po_y++;if (input == 'w')po_x--;if (input == 's')po_x++;if (input==' '){bu_x = po_x - 1;bu_y = po_y;}}
}
int main()
{startup();HideCursor();while (1){show();updateWithoutInput();updateWithInput();}return 0;
}

C语言游戏开发——打飞机游戏2.0相关推荐

  1. Pygame开发打飞机游戏

    pygame 开发打飞机游戏 一.实验说明 1. 实现效果 单文件实现微信打飞机小游戏 2. 开发环境 python 2.7 pygame random sys 3. 源码下载 本课程中的所有源码:h ...

  2. Python开发打飞机游戏

    作者:晓晓 链接:https://zhuanlan.zhihu.com/p/21290174 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.项目简介 1. 介绍 ...

  3. C语言游戏3:飞机游戏

    目录 代码重构: 新式子弹: 静止的敌机: 敌机移动: 击中敌机: 清屏功能: 代码重构: 利用函数和相关的游戏框架对飞机游戏进行重构,实现控制飞机移动的功能.另外对输出部分也进行了改进,通过二重循环 ...

  4. 微信小游戏开发教程-2D游戏原理讲解

    微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...

  5. libGDX游戏开发之打包游戏(十二)

    libGDX游戏开发之打包游戏(十二) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和goog ...

  6. 【邀您参加】Android大讲堂-Android游戏开发之捕鱼游戏

    来源:华清远见嵌入式培训中心 ● 揭开Android底层架构的神秘面纱 Android应用开发与底层开发一网打尽! ● 全程免费 网络直播 实时互动 业内专家精辟讲解 项目案例透彻分析 作为目前全球最 ...

  7. 游戏开发心得——资料篇——游戏行业的详细职位介绍与定义分析

    游戏开发心得--资料篇--游戏行业的详细职位介绍与分析(不定期更新) FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 本篇主要介绍一下博主所了 ...

  8. 基于cocos2d-x的快速的游戏开发--回合制游戏

    2019独角兽企业重金招聘Python工程师标准>>> #基于cocos2d-x的快速的游戏开发--回合制游戏 开发时间:3天 开发工具:cocos2d-x和cocostudio 开 ...

  9. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

最新文章

  1. 面了BAT,我总结了他们会问的JVM基础知识
  2. [微信开发] 开发指南笔记
  3. linux系统下tar/gz/7z/xz/bz2/zip等各种格式的打包压缩解压
  4. 阿里大规模数据中心性能分析
  5. html文件如何转php文件,怎么把动态的php文件转换成静态的html文件,html文件是php文件…...
  6. 关于日志打印的几点建议以及非最佳实践
  7. Mysql问题 ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘
  8. Win10设置mac
  9. 又遇到jqGrid在chrome下宽度不正常有滚动条
  10. php 计算字段的和,php – foreach中计算列的总和
  11. MTRR内存类型范围寄存器
  12. win10,secoclient总是报错:与对方建立连接超时,配置错误或网络故障
  13. 微信扫一扫门禁开门小程序开发制作
  14. 安装西门子博图一直重启_博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...
  15. 十分钟理解线性代数的本质_线性代数的本质
  16. 企业局域网即时通讯软件存在是必然趋势
  17. 近代光学系统设计概论学习笔记-第四章双胶合和双分离消色差物镜
  18. 电脑系统怎么重装?PE系统安装教程一键系统重装
  19. es报Unexpected character (‘ï‘ (code 239)): was expecting comma to separate Object entries解决方法
  20. 祭祀扫墓网站php源码,斗破苍穹:不可错过的玄幻

热门文章

  1. python3 爬虫实战 :用 Appium 抓取手机 app 微信朋友圈的数据
  2. 数组:合并同为升序或者降序的数组
  3. Nancy Async
  4. numpy中的ravel()方法使用介绍
  5. 当python导入包时,出现DLL load failed while impoting _path错误
  6. 微信公众号一键关注方法
  7. 微信小程序计算三角形面积,三棱锥体积
  8. 利用PSO求解TSP问题
  9. 【送书】重磅!中国科学技术大学,成立新学院!
  10. 设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点。