c语言飞机空战游戏的具体步骤,空战游戏.cpp
#include
#include
#include
#include
#define High 15 // 游戏画面尺寸
#define Width 25
#define EnemyNum 5 // 敌机个数
// 全局变量
int position_x,position_y; // 飞机位置
int enemy_x[EnemyNum],enemy_y[EnemyNum]; // 敌机位置
int canvas[High][Width] = {0}; // 二维数组存储游戏画布中对应的元素
// 0为空格,1为飞机*,2为子弹|,3为敌机@
int score; // 得分
int BulletWidth; // 子弹宽度
int EnemyMoveSpeed; // 敌机移动速度
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 startup() // 数据初始化
{
position_x = High-1;
position_y = Width/2;
canvas[position_x][position_y] = 1;
int k;
for (k=0;k
{
enemy_x[k] = rand()%2;
enemy_y[k] = rand()%Width;
canvas[enemy_x[k]][enemy_y[k]] = 3;
}
score = 0;
BulletWidth = 0;
EnemyMoveSpeed = 20;
}
void show() // 显示画面
{
gotoxy(0,0); // 光标移动到原点位置,以下重画清屏
int i,j;
for (i=0;i
{
for (j=0;j
{
if (canvas[i][j]==0)
printf(" "); // 输出空格
else if (canvas[i][j]==1)
printf("*"); // 输出飞机*
else if (canvas[i][j]==2)
printf("|"); // 输出子弹|
else if (canvas[i][j]==3)
printf("@"); // 输出飞机@
}
printf("\n");
}
printf("得分:%d\n",score);
Sleep(20);
}
void updateWithoutInput() // 与用户输入无关的更新
{
int i,j,k;
for (i=0;i
{
for (j=0;j
{
if (canvas[i][j]==2)
{
for (k=0;k
{
if ((i==enemy_x[k]) && (j==enemy_y[k])) // 子弹击中敌机
{
score++; // 分数加1
if (score%5==0 && EnemyMoveSpeed>3) // 达到一定积分后,敌机变快
EnemyMoveSpeed--;
if (score%5==0) // 达到一定积分后,子弹变厉害
BulletWidth++;
canvas[enemy_x[k]][enemy_y[k]] = 0;
enemy_x[k] = rand()%2; // 产生新的飞机
enemy_y[k] = rand()%Width;
canvas[enemy_x[k]][enemy_y[k]] = 3;
canvas[i][j] = 0; // 子弹消失
}
}
// 子弹向上移动
canvas[i][j] = 0;
if (i>0)
canvas[i-1][j] = 2;
}
}
}
static int speed = 0;
if (speed
speed++;
for (k=0;k
{
if ((position_x==enemy_x[k]) && (position_y==enemy_y[k])) // 敌机撞到我机
{
printf("失败!\n");
Sleep(3000);
system("pause");
exit(0);
}
if (enemy_x[k]>High) // 敌机跑出显示屏幕
{
canvas[enemy_x[k]][enemy_y[k]] = 0;
enemy_x[k] = rand()%2; // 产生新的飞机
enemy_y[k] = rand()%Width;
canvas[enemy_x[k]][enemy_y[k]] = 3;
score--; // 减分
}
if (speed == EnemyMoveSpeed)
{
// 敌机下落
for (k=0;k
{
canvas[enemy_x[k]][enemy_y[k]] = 0;
enemy_x[k]++;
speed = 0;
canvas[enemy_x[k]][enemy_y[k]] = 3;
}
}
}
}
void updateWithInput() // 与用户输入有关的更新
{
char input;
if(kbhit()) // 判断是否有输入
{
input = getch(); // 根据用户的不同输入来移动,不必输入回车
if (input == 'a' && position_y>0)
{
canvas[position_x][position_y] = 0;
position_y--; // 位置左移
canvas[position_x][position_y] = 1;
}
else if (input == 'd' && position_y
{
canvas[position_x][position_y] = 0;
position_y++; // 位置右移
canvas[position_x][position_y] = 1;
}
else if (input == 'w')
{
canvas[position_x][position_y] = 0;
position_x--; // 位置上移
canvas[position_x][position_y] = 1;
}
else if (input == 's')
{
canvas[position_x][position_y] = 0;
position_x++; // 位置下移
canvas[position_x][position_y] = 1;
}
else if (input == ' ') // 发射子弹
{
int left = position_y-BulletWidth;
int right = position_y+BulletWidth;
if (left<0)
left = 0;
if (right>Width-1)
right = Width-1;
int k;
for (k=left;k<=right;k++) // 发射闪弹
canvas[position_x-1][k] = 2; // 发射子弹的初始位置在飞机的正上方
}
}
}
int main()
{
startup(); // 数据初始化
while (1) // 游戏循环执行
{
show(); // 显示画面
updateWithoutInput(); // 与用户输入无关的更新
updateWithInput(); // 与用户输入有关的更新
}
return 0;
}
一键复制
编辑
Web IDE
原始数据
按行查看
历史
c语言飞机空战游戏的具体步骤,空战游戏.cpp相关推荐
- 怎么开发联机小游戏_Q飞机游戏:空战吃鸡大乱斗游戏!好玩的联机Q飞机对战小游戏...
20000+游戏爱好者已加入我们! 带你发现好游戏! <Q飞机>游戏小程序好玩吗? <Q飞机>小游戏怎么玩? 只有你想不到, 没有我找不到的好游戏! 「良心好游戏推荐」 搜罗了 ...
- C语言---飞机大战游戏
飞机大战小游戏(包含图片.音效) 示例演示: 一.建立的全部源文件 二.源代码 1.飞机大战2.0 .cpp 2.开场动画.cpp 3.游戏结束.cpp 4.头文件connect.h 三.图片资源 四 ...
- C语言飞机大战程序思路,C语言代码实现飞机大战
本文实例为大家分享了C语言实现简单飞机大战的具体代码,供大家参考,具体内容如下 这个游戏的功能很单一,也就是"飞机大战",哈哈哈哈.总共只有300多行代码左右,你也可以想想它会有多 ...
- C语言第十二课:编写扫雷游戏(综合练习2)
目录 前言: 一.文件建立: 1.头文件game.h: 2.函数定义文件game.c: 3.工程测试文件test.c: 二.编写井字棋游戏: 1.程序整体执行思路: 2.menu菜单: 3.game游 ...
- c语言课程结束小项目:2048小游戏
<C语言程序设计基础>学习完毕,完成第一个项目:2048小游戏. //思考:编程时,要先想整个框架还是先想每个函数的算法. //思考:每一个函数要不要传参数(即数组) //思考:每一个函数 ...
- 飞机大战c语言设计报告,中南大学电信-C语言飞机大战实验报告.doc
中南大学电信-C语言飞机大战实验报告 C语言课程设计报告 题 目 C语言飞机大战 学生姓名 学 号 指导教师 学 院 信息科学与工程学院 专业班级 电子信息工程2班 完成时间 程序框图 按任意键进入游 ...
- 如何用C语言快速实现三子棋(步骤详细)
目录 前言 问题描述 工具 基本思路和流程 三子棋的规则 代码实现思路 实现步骤 模块化 菜单界面 代码 选择的实现 初始化和打印棋盘 棋盘 使用宏定义 初始化 打印 考虑如何实现图表 提供代码 效果 ...
- 用Python写简单游戏的一般步骤
用Python写简单游戏的一般步骤 前言 自己用python写过几个简单的游戏后,发现对于已经写过的这些游戏而言,其创作流程都有一些相通性,自此小结一下用python写游戏的一般步骤. pytho ...
- 我和计算机做游戏课后反思,语言活动设计《我和风儿做游戏》
语言活动设计<我和风儿做游戏> 活动意图 本活动根据幼儿的年龄特点设计,以常见的自然现象"风"为载体,通过提供丰富多样.适宜的操作材料与环境,引导幼儿积极主动地探究环境 ...
最新文章
- CheckStyle
- Uva10285 Longest Run on a Snowboard
- James 3.0 邮箱配置
- 语音留言无法在电话上播放
- Spring(四)——AOP、Spring实现AOP、Spring整合Mybatis、Spring中的事务管理
- Linux vim打开文件的四种方式
- 有了这款Python神器,新手也会调试代码!
- MapHack源代码
- php300云,概述 · PHP300Framework2.0 · 看云
- 简单的基准测试:不可变集合VS持久集合
- Qt文档阅读笔记-Qt工作笔记-QThread解析与实例(主线程发送信号给子线程)
- python打印字符串的前五行_python基础-字符串(6)
- 局域网即时通讯软件_远程桌面监控软件好不好用?哪个好?
- 数量遗传学 第五章 双亲杂交后代数量性状均值和方差组成
- 基于 arm 设计开发工具包的 Arm Cortex-M3 处理器设计(第二章:示例微处理器组成及各个Verilog文件功能及作用)
- jQuery 下载保存图片的方法
- OB2263MP小知识
- 用Java将32 bpp映像转换为16 bpp映像
- Android手机的驱动安装
- Cesium 对象Entity点击查看属性信息