项目: 最简单的飞机大战游戏
目录
- 一、项目描述和最终的成果展示
- 二、输出一个飞机模型。
- 三、实现控制飞机移动的功能
- 四、添加发射激光功能
- 五、添加靶子和分数统计功能
一、项目描述和最终的成果展示
项目描述: 显示出一个飞机,并可以控制移动,发出激光,打靶练习。
效果展示:
二、输出一个飞机模型。
先输出一个飞机模型。后面再进一步完成控制飞机的功能。
代码如下:
//输出飞机图案
#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;
}
效果图如下:
项目: 最简单的飞机大战游戏相关推荐
- Java学习之路:简单的飞机大战游戏(敌机下落篇)
在实现这个游戏之前,我们首先需要知道项目可能要用到哪些知识点: 重绘,线程,双缓冲,数据结构的应用 差不多是这大概有这些,如果不够的话我们再加. 首先,我们应该实现敌机下落,在这里大概思路和利用线程使 ...
- 简单制作飞机大战游戏。
飞机大战(初级)(一) 因为最近有做这个的实训,每天一点点的学习.因为自己也是个初学者,希望自己所做的这些也能帮助简单学习java的朋友,这是第一次在这上面去分享这些,一方面希望自己能进步,能交更多的 ...
- 用java写一个简单的飞机大战游戏
制作一个简单的飞机大战 注意!!!!!,图片素材在我的资源里有. 下面代码排序,非先后顺序.请看清楚类名 Airplane类 package Flyplane;public class Airplan ...
- 用C语言写一个简单的飞机大战游戏(用到easyx图形库)
学习内容:1.背景的运动 2.飞机爆炸效果 3.透明贴图工具 目录 一.需要用到的头文件.全局变量和一些函数.结构体 二.数据初始化以及图片处理 三.主体 四.物体碰撞 五.游戏运行 六.透明贴图工具 ...
- 项目: 用封装的方法实现飞机大战游戏
目录 一.项目描述和最终的成果展示 二.用函数进行封装 三.新型的发射子弹功能 四.实现移动的敌机功能和更正屏幕闪烁,清除光标功能 五.订正一些BUG和完成一些美化 这是上一次的飞机大战游戏的项目.项 ...
- 用Java编写飞机大战游戏
飞机大战(Plane War)是一款非常受欢迎的小游戏,它通过增加玩家的难度和挑战性,促使玩家不断提高自己的操作能力和反应速度,并在升级过程中逐步拓展游戏世界的规模和内容.本文将介绍如何使用Java编 ...
- 毕业设计 基于Java的飞机大战游戏的设计与实现
文章目录 前言 一.项目设计 1. 模块设计 功能需求 游戏状态控制功能模块 游戏难度的调整模块 游戏界面绘画功能模块 玩家游戏控制功能模块 2. 实现效果 二.部分源码 项目源码 前言 今天学长向大 ...
- pygame实现飞机大战游戏
标题:pygame实现飞机大战游戏 源码链接:我的github地址 一.具体演示 1.怪兽分为小怪,和大怪:大怪可以发射子弹 2.英雄飞机共有10个生命值 3.英雄飞机可以上下左右移动 4.显示了英雄 ...
- 基于pygame实现的飞机大战游戏
目录 1.引言 1.1 背景 1.2 意义 1.3 功能 2.系统结构 2.1 整体框架 2.2 精灵与精灵组 2.3 功能介绍 2.3.1 玩家飞机 2.3.2 敌机类型和关卡设定 2.3.3 敌机 ...
最新文章
- Java在Quant应用_java – 如何绘制quantil band(在R中)
- IaaS, PaaS和SaaS是云计算的三种服务模式
- Reddit年度盘点:2019年最佳机器学习项目
- 关于silverlight+MVVM+WCF保存数据出错的问题
- 商业银行为什么大量组织高净值小规模活动?
- Microsoft JET Database Engine 错误 #39;80004005#39;的解决方法
- 如何创建多个条形图_学习使用D3创建条形图-初学者教程
- su切换到oracle后怎么退出,linux下启动oralce和关闭oracle以及数据库实例化
- 注解-@Conditional的使用
- 10. 二进制中1的个数(C++版本)
- vue 中 v-if 和 v-for 混用时应该注意的事项
- Flutter 2.5 的新特性
- 互亿无线5G视频短信
- Java 将中文文件名称修改为拼音首字母、拼音全称(附GitHub)
- 802.11--802.11n协议 PHY
- 支付项目:9、购物车模块
- seata报错问题总结 Unable to commit against JDBC Connection
- 现代密码学:数字签名
- matlab simulink 磷酸铁锂电池仿真
- 详尽全面而又简单易懂的Scala学习笔记(参上)【不适合零基础】
热门文章
- MSSql2005: Cube 和 RollUp 的区别
- 代码管理平台之svn
- nginx加密,访问接口认证
- eclipse报错:Failed to load the JNI shared library
- 也议GetLastKnownLocation!!(独家理解)
- stm32外设初始化和设置过程
- AB1601中如何实现比较精准NOP延时
- gbdt和xgboost区别
- java.lang.ClassNotFoundException: org/apache/xerces/parsers/SAXParser
- PKI/CA (1)为什么要有PKI/CA体系?