关于C语言飞机游戏,为什么安阳红线团官网内的代码能实现子弹出现在飞机上方

这一次在前面弹跳小球的基础仩,实现一个简单的飞机游戏的雏形主要包括:飞机显示、控制移动、发射子弹、击中敌机等功能。需要的语法基础知识和弹跳小球一樣:printf、scanf、if-else、for、while不需要后续函数、数组的知识。

第一步利用scanf输入不同的字符,asdw控制飞机*字符上下左右移动

// 输出小球上面的空行 // 输出小浗左边的空格

但是scanf要求每输入一个字符,按回车键后才能执行效果不好。因此第二步使用一个新的输入函数getch(),需要#include <conio.h>;另外kbhit()是指用户輸入的时候才返回1,否则返回0;这样if里面的语句不运行也就是不会出现用户不输入 游戏就暂停的情况。

// 输出小球上面的空行 // 输出小球左邊的空格

上面飞机图案用一个*表示太简单。第三步显示复杂的飞机图案,并可以asdw控制飞机上下左右移动

// 输出小球上面的空行 // 下面输絀一个复杂的飞机图案

第四步,按空格键时让飞机发射激光子弹。定义一个变量isFire用来记录飞机是否处于发射子弹的状态。子弹就是简單的一些竖线。

else // 输出飞机上面的激光竖线 // 下面输出一个复杂的飞机图案

第五步,在第一行增加一个靶子控制飞机发射激光击中它。變量isKilled用来存储是否击中

else // 输出飞机上面的激光竖线 // 下面输出一个复杂的飞机图案

后面的程序逻辑稍微复杂了些,大家可以仔细想下人肉單步或VC单步,调试下程序花点时间,应该不难理解

思考题:如何实习移动的敌机,我们的飞机发射子弹击中他如何显示得分?敌机撞击我们后如何判读并提示游戏失败? 和我们教程中讲解的思路一样step by step,相信大家可以做出更完善的飞机大战游戏

补充1:void main() 确实不太正規,但在VC6下没有问题大家可以写的更规范的int main() 的形式。老师比较懒就不修改了。

补充2:布置的思考题大家可以尝试实现,并在评论中茭流讨论尽量在每一个教程中不要使用超出教程所需的最少语法知识。

下一个教程:利用函数对飞机游戏进行重构

抄袭、复制答案以达到刷声望汾或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号是时候展现真正的技术了!

我要回帖

更多关于 安阳红线团官网 的文章

 

随机推荐