这一次在前面弹跳小球的基础仩,实现一个简单的飞机游戏的雏形主要包括:飞机显示、控制移动、发射子弹、击中敌机等功能。需要的语法基础知识和弹跳小球一樣:printf、scanf、if-else、for、while不需要后续函数、数组的知识。
第一步利用scanf输入不同的字符,asdw控制飞机*字符上下左右移动
但是scanf要求每输入一个字符,按回车键后才能执行效果不好。因此第二步使用一个新的输入函数getch(),需要#include <conio.h>;另外kbhit()是指用户輸入的时候才返回1,否则返回0;这样if里面的语句不运行也就是不会出现用户不输入 游戏就暂停的情况。
上面飞机图案用一个*表示太简单。第三步显示复杂的飞机图案,并可以asdw控制飞机上下左右移动
第四步,按空格键时让飞机发射激光子弹。定义一个变量isFire用来记录飞机是否处于发射子弹的状态。子弹就是简單的一些竖线。
第五步,在第一行增加一个靶子控制飞机发射激光击中它。變量isKilled用来存储是否击中
后面的程序逻辑稍微复杂了些,大家可以仔细想下人肉單步或VC单步,调试下程序花点时间,应该不难理解
思考题:如何实习移动的敌机,我们的飞机发射子弹击中他如何显示得分?敌机撞击我们后如何判读并提示游戏失败? 和我们教程中讲解的思路一样step by step,相信大家可以做出更完善的飞机大战游戏
补充1:void main() 确实不太正規,但在VC6下没有问题大家可以写的更规范的int main() 的形式。老师比较懒就不修改了。
补充2:布置的思考题大家可以尝试实现,并在评论中茭流讨论尽量在每一个教程中不要使用超出教程所需的最少语法知识。
下一个教程:利用函数对飞机游戏进行重构