C语言游戏开发——打飞机游戏2.0
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相关推荐
- Pygame开发打飞机游戏
pygame 开发打飞机游戏 一.实验说明 1. 实现效果 单文件实现微信打飞机小游戏 2. 开发环境 python 2.7 pygame random sys 3. 源码下载 本课程中的所有源码:h ...
- Python开发打飞机游戏
作者:晓晓 链接:https://zhuanlan.zhihu.com/p/21290174 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 一.项目简介 1. 介绍 ...
- C语言游戏3:飞机游戏
目录 代码重构: 新式子弹: 静止的敌机: 敌机移动: 击中敌机: 清屏功能: 代码重构: 利用函数和相关的游戏框架对飞机游戏进行重构,实现控制飞机移动的功能.另外对输出部分也进行了改进,通过二重循环 ...
- 微信小游戏开发教程-2D游戏原理讲解
微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...
- libGDX游戏开发之打包游戏(十二)
libGDX游戏开发之打包游戏(十二) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和goog ...
- 【邀您参加】Android大讲堂-Android游戏开发之捕鱼游戏
来源:华清远见嵌入式培训中心 ● 揭开Android底层架构的神秘面纱 Android应用开发与底层开发一网打尽! ● 全程免费 网络直播 实时互动 业内专家精辟讲解 项目案例透彻分析 作为目前全球最 ...
- 游戏开发心得——资料篇——游戏行业的详细职位介绍与定义分析
游戏开发心得--资料篇--游戏行业的详细职位介绍与分析(不定期更新) FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 本篇主要介绍一下博主所了 ...
- 基于cocos2d-x的快速的游戏开发--回合制游戏
2019独角兽企业重金招聘Python工程师标准>>> #基于cocos2d-x的快速的游戏开发--回合制游戏 开发时间:3天 开发工具:cocos2d-x和cocostudio 开 ...
- Unity 2D游戏开发教程之游戏中精灵的跳跃状态
Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...
最新文章
- 面了BAT,我总结了他们会问的JVM基础知识
- [微信开发] 开发指南笔记
- linux系统下tar/gz/7z/xz/bz2/zip等各种格式的打包压缩解压
- 阿里大规模数据中心性能分析
- html文件如何转php文件,怎么把动态的php文件转换成静态的html文件,html文件是php文件…...
- 关于日志打印的几点建议以及非最佳实践
- Mysql问题 ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘
- Win10设置mac
- 又遇到jqGrid在chrome下宽度不正常有滚动条
- php 计算字段的和,php – foreach中计算列的总和
- MTRR内存类型范围寄存器
- win10,secoclient总是报错:与对方建立连接超时,配置错误或网络故障
- 微信扫一扫门禁开门小程序开发制作
- 安装西门子博图一直重启_博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...
- 十分钟理解线性代数的本质_线性代数的本质
- 企业局域网即时通讯软件存在是必然趋势
- 近代光学系统设计概论学习笔记-第四章双胶合和双分离消色差物镜
- 电脑系统怎么重装?PE系统安装教程一键系统重装
- es报Unexpected character (‘ï‘ (code 239)): was expecting comma to separate Object entries解决方法
- 祭祀扫墓网站php源码,斗破苍穹:不可错过的玄幻