7854: 打飞机系统设计讲解

内存限制:128 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:9 通过:0

题目描述

打飞机游戏的功能:https://v.youku.com/v_show/id_XNTA3NjU0MTY4NA==.html



第一步实现: 画飞机;飞机的基本移动;掌握刷屏函数;掌握移动的原理。



第二步:隐藏光标;引入输出函数getch();加上window头文件



第三步:发射激光子弹;引入 kbhit()函数 ;

引入 kbhit()函数 , 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0
在没有键盘输入时 if(kbhit())下面的语句不会运行,从而避免出现用户输入游戏就暂定的情况
实现发射激光 :按住空格键后让飞机发射激光子弹,即在飞机上上方显示一列竖线'|'。
定义变量fire,用来记录飞机是否处于发射子弹的状态。但isfire=1是将在飞机的正上方输出激光子弹。 




第四步:在第一行增加一个靶子“+”,控制飞机发射激光击中它。
变量iskilled用来存储是否集中,iskiddled等于0显示靶子,
iskilled=1时不再显示靶子。 




输入格式

重构程序,用函数封装对应功能,然代码变得可读性更好,更规范
//startup初始化数据 
//show();  显示画面
//updateWithoutInput(); 与用户输入无关的更新

//updateWithInput();   与用户输入有关的更新



第二步,实现连续发射子弹



第三步实现敌机下降,让敌机自动向下移动(ememy_x++)//



第四步 击中敌机  



第五步 解决游戏画面闪烁的问题,利用gotoxy(windows函数)函数进行重绘 


输出格式

实现空战

为了扩展游戏,引出数组, canvas[High][Width]中存储游戏画面的数据 /0为空格,1为飞机*,2为子弹|,3为敌机@



第二步 ,加入计分


第三步  实现多敌机


第四步 多子弹