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. php类退出魔术方法,php类中常用的魔术方法
  2. 管理中应避免“妇人之仁”
  3. 汇编语言-第四章 第一个程序
  4. 硬盘接口的类型介绍和比较
  5. Markdown = PPT ?这个工具给力!
  6. phpcms v9 数据源
  7. 拒绝访问(Access Denied)错误的快捷诊断方法
  8. sklearn.metrics.roc_curve使用说明
  9. 基于FVC_MSAVI_EVI的荒漠化等级分类方法
  10. 计算机应用大赛宣传语,计算机应用大赛宣传口号
  11. 词霸天下---136 词根 【-imag- = -imit- 图像 】仅供学习使用
  12. 量化投资学习——股票价格估值模型
  13. pycharm的 crtl + r 使用正则表达式进行 request-header格式更改
  14. 什么叫数字化服务-数字化转型网
  15. bing搜索PubHub发布商指南
  16. 【外链建设方法】SEO外链推广方法
  17. Java递归实现围棋提子思想
  18. java实验2实验报告(20135232王玥)
  19. MySQL经典100问
  20. CANdbc编辑器的下载和入门介绍

热门文章

  1. 窗帘和纱窗结合成为居家必备 - 江南爱窗帘十大品牌
  2. 笔记:无截距项的一元回归模型
  3. SAP FI系列 (036) - 应收票据贴现
  4. unity web player full 完整版unitywebplayer播放器下载址
  5. 哔哩哔哩三倍速播放可用方法
  6. 深度学习框架 TensorFlow:张量、自动求导机制、tf.keras模块(Model、layers、losses、optimizer、metrics)、多层感知机(即多层全连接神经网络 MLP)
  7. 台式计算机哄哄响怎么回事,电脑嗡嗡响的原因 电脑嗡嗡响的解决方法
  8. 地方门户湘都信息港 网站源码(discuz)
  9. Google的Gson——GsonUtil工具类
  10. python cookies是什么_Python网络爬虫之Cookie技术(一)