目录

  • 一、项目描述和最终的成果展示
  • 二、输出一个飞机模型。
  • 三、实现控制飞机移动的功能
  • 四、添加发射激光功能
  • 五、添加靶子和分数统计功能

一、项目描述和最终的成果展示

项目描述: 显示出一个飞机,并可以控制移动,发出激光,打靶练习。

效果展示:

二、输出一个飞机模型。

先输出一个飞机模型。后面再进一步完成控制飞机的功能。

代码如下:

//输出飞机图案
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int main(void)
{int i,j;int x=10;int y=10;char input;//输出飞机上面的空行for(i=0;i<x;i++){printf("\n");}//输出飞机左边的空格for(j=0;j<y;j++){printf(" ");}printf("  *\n");for(j=0;j<y;j++){printf(" ");}printf("*****\n");for(j=0;j<y;j++){printf(" ");}printf(" * * \n");   return 0;
}

效果图如下:

三、实现控制飞机移动的功能

用scanf()函数来实现控制飞机移动的功能
代码如下:

#include<stdio.h>
#include<stdlib.h>
//用scanf来完成飞机的移动
int main(void)
{int i,j;int x=5;int y=10;char input;while(1){system("cls");//输出飞机上面的空行for(i=0;i<x;i++){printf("\n");}//输出飞机左边的空格for(j=0;j<y;j++){printf(" ");}printf("  *\n");for(j=0;j<y;j++){printf(" ");}printf("*****\n");for(j=0;j<y;j++){printf(" ");}printf(" * * \n");scanf("%c",&input);if(input == 'a' || input == 'A'){y--;}if(input == 'd' || input == 'D'){y++;}if(input == 'w' || input == 'W'){x--;}if(input == 's' || input == 'S'){x++;}}return 0;
}

效果图如下:

你会发现一个弊端 就是它会显示你输入了啥,这样是特别的不友好的。
所以我们要用 getch() 这个函数, 它是不会显示回显的。即,不会出现我们输入的是啥。
这样就很好了,达到了我们的目的。

用getch()函数来实现控制飞机移动的功能
代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//用scanf来完成飞机的移动
int main(void)
{int i,j;int x=5;int y=10;char input;while(1){system("cls");//输出飞机上面的空行for(i=0;i<x;i++){printf("\n");}//输出飞机左边的空格for(j=0;j<y;j++){printf(" ");}printf("  *\n");for(j=0;j<y;j++){printf(" ");}printf("*****\n");for(j=0;j<y;j++){printf(" ");}printf(" * * \n");input=getch();if(input == 'a' || input == 'A'){y--;}if(input == 'd' || input == 'D'){y++;}if(input == 'w' || input == 'W'){x--;}if(input == 's' || input == 'S'){x++;}}return 0;
}

效果图如下:

四、添加发射激光功能

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//用getch来完成飞机的移动
int main(void)
{int i,j;int x=10;int y=10;char input;int isFire=0;//用来判断是否发射while(1){if(isFire == 0){//输出飞机上面的空行for(i=0;i<x;i++)printf("\n");}else{for(i=0;i<x;i++){for(j=0;j<y;j++)printf(" ");printf("  |\n");}isFire = 0;}//输出飞机左边的空格for(j=0;j<y;j++){printf(" ");}printf("  *\n");for(j=0;j<y;j++){printf(" ");}printf("*****\n");for(j=0;j<y;j++){printf(" ");}printf(" * * \n");input=getch();fflush(stdin);system("cls");if(input == 'a' || input == 'A'){y--;}if(input == 'd' || input == 'D'){y++;}if(input == 'w' || input == 'W'){x--;}if(input == 's' || input == 'S'){x++;}if( input == ' ')isFire = 1;}return 0;
}

效果图如下:

五、添加靶子和分数统计功能

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<time.h>
#include<conio.h>
//用getch来完成飞机的移动
int main(void)
{int i,j;int x=10;int y=10;char input;int isFire=0;//用来判断是否发射int score=10;int ny = 30;        //  靶子的位置int isKilled = 0; //判断是否击中int yanshi=0;    //  延时靶子的时间system("color 09");while(1){if(yanshi<66)//延时 让靶子显示{yanshi++;}else{srand(time(0));ny=rand()%80+5;yanshi=0;}printf("分数:%d\n",score);if(!isKilled)//没有击中靶子,继续显示靶子{for(j=0;j<ny;j++){printf(" ");}printf("▼\n");}else//说明击中靶子,刷新靶子{yanshi=66;isKilled=0;}if(isFire == 0){//输出飞机上面的空行for(i=0;i<x;i++)printf("\n");}else//开火{for(i=0;i<x;i++){for(j=0;j<y;j++)printf(" ");printf("  |\n");}isFire = 0;}//输出飞机左边的空格for(j=0;j<y;j++){printf(" ");}printf("  *\n");for(j=0;j<y;j++){printf(" ");}printf("*****\n");for(j=0;j<y;j++){printf(" ");}printf(" * * \n");input=getch();fflush(stdin);system("cls");if(input == 'a' || input == 'A'){y--;}if(input == 'd' || input == 'D'){y++;}if(input == 'w' || input == 'W'){x--;}if(input == 's' || input == 'S'){x++;}if( input == ' ')isFire = 1;if( (ny==y+2) && (input==' ') )//判断是否击中靶子{isKilled=1;score=score+5;//分数增加}}return 0;
}

效果图如下:

项目: 最简单的飞机大战游戏相关推荐

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

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

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

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

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

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

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

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

  5. 项目: 用封装的方法实现飞机大战游戏

    目录 一.项目描述和最终的成果展示 二.用函数进行封装 三.新型的发射子弹功能 四.实现移动的敌机功能和更正屏幕闪烁,清除光标功能 五.订正一些BUG和完成一些美化 这是上一次的飞机大战游戏的项目.项 ...

  6. 用Java编写飞机大战游戏

    飞机大战(Plane War)是一款非常受欢迎的小游戏,它通过增加玩家的难度和挑战性,促使玩家不断提高自己的操作能力和反应速度,并在升级过程中逐步拓展游戏世界的规模和内容.本文将介绍如何使用Java编 ...

  7. 毕业设计 基于Java的飞机大战游戏的设计与实现

    文章目录 前言 一.项目设计 1. 模块设计 功能需求 游戏状态控制功能模块 游戏难度的调整模块 游戏界面绘画功能模块 玩家游戏控制功能模块 2. 实现效果 二.部分源码 项目源码 前言 今天学长向大 ...

  8. pygame实现飞机大战游戏

    标题:pygame实现飞机大战游戏 源码链接:我的github地址 一.具体演示 1.怪兽分为小怪,和大怪:大怪可以发射子弹 2.英雄飞机共有10个生命值 3.英雄飞机可以上下左右移动 4.显示了英雄 ...

  9. 基于pygame实现的飞机大战游戏

    目录 1.引言 1.1 背景 1.2 意义 1.3 功能 2.系统结构 2.1 整体框架 2.2 精灵与精灵组 2.3 功能介绍 2.3.1 玩家飞机 2.3.2 敌机类型和关卡设定 2.3.3 敌机 ...

最新文章

  1. Java在Quant应用_java – 如何绘制quantil band(在R中)
  2. IaaS, PaaS和SaaS是云计算的三种服务模式
  3. Reddit年度盘点:2019年最佳机器学习项目
  4. 关于silverlight+MVVM+WCF保存数据出错的问题
  5. 商业银行为什么大量组织高净值小规模活动?
  6. Microsoft JET Database Engine 错误 #39;80004005#39;的解决方法
  7. 如何创建多个条形图_学习使用D3创建条形图-初学者教程
  8. su切换到oracle后怎么退出,linux下启动oralce和关闭oracle以及数据库实例化
  9. 注解-@Conditional的使用
  10. 10. 二进制中1的个数(C++版本)
  11. vue 中 v-if 和 v-for 混用时应该注意的事项
  12. Flutter 2.5 的新特性
  13. 互亿无线5G视频短信
  14. Java 将中文文件名称修改为拼音首字母、拼音全称(附GitHub)
  15. 802.11--802.11n协议 PHY
  16. 支付项目:9、购物车模块
  17. seata报错问题总结 Unable to commit against JDBC Connection
  18. 现代密码学:数字签名
  19. matlab simulink 磷酸铁锂电池仿真
  20. 详尽全面而又简单易懂的Scala学习笔记(参上)【不适合零基础】

热门文章

  1. MSSql2005: Cube 和 RollUp 的区别
  2. 代码管理平台之svn
  3. nginx加密,访问接口认证
  4. eclipse报错:Failed to load the JNI shared library
  5. 也议GetLastKnownLocation!!(独家理解)
  6. stm32外设初始化和设置过程
  7. AB1601中如何实现比较精准NOP延时
  8. gbdt和xgboost区别
  9. java.lang.ClassNotFoundException: org/apache/xerces/parsers/SAXParser
  10. PKI/CA (1)为什么要有PKI/CA体系?