一、 实验项目名称
《飞机大战》
二、 实验项目功能描述
1、 用w、s、a、d控制自己的飞机的上下左右,空格发出子弹
2、 击落敌机,从而获得加分,得分越高,敌机运动速度越快
3、敌机随机出现,
4、自己飞机有边界,不能出界
5、输入字符0结束游戏,显示你的最后得分
三、 项目模块结构介绍(文字+总体模型)
模型:初始化
显示画面
数据输入
无数据输入时继续运行程序
使得屏幕不闪屏
能播放音乐
1、 初始化模块:startup();函数:控制游戏画面尺寸。自己飞机初始位置。敌机第一次出现的位置。子弹初始位置:位于自己飞机的正上方。飞机速度控制。
2、 隐藏光标模块:HideCursor():是一个系统定义函数
3、 播放音乐模块:从库里直接调用
4、 显示画面模块:show(),从原点开始,清屏重画。输出子弹位置,自己飞机位置,敌机位置
5、 无关数据输入继续运行模块:updateWithoutInput()判断输出的子弹是否击中敌机,击中敌机则子弹消失(出界),输出新敌机。控制敌机移动速度,分数到达一个值则飞机速度加快。
6、 有关数据输入运行模块:updateWithInput():接收飞机移动输入,还有子弹输入,并控制飞机不出界。输入零则游戏结束
四、 实现界面展示
五、 代码托管链接
https://gitee.com/xqldc/xqldx.git
六、 实验总结(提出问题+解决办法+感想)
书上的代码很不错,但是我还是改进了,改进如下:
1、 增加了结束游戏的输入,
2、 还增加了条件,使得自己的飞机不会出界,
3、 增加了控制飞机速度的参数,得分越高,敌机速度越快
4、 增加了音乐
遇到的问题1:速度参数是整数的时候,每次敌机速度加快后的第一个敌机都会停止在第一行不会移动。
解决方法:改变参数,
遇到的问题2:想输出复杂的飞机图形,但是发现后面真正输出图片的时候,只要一个图片输出就行了,说明现在这个只输出一个字符的飞机就OK了,能满足以后的功能了。
感想:现在做的还比较顺利,但是离真正的应用程序还是差的远,很多功能想到了,但是不知道怎么实现。不会的还是得多百度,多问,因为现在的很多东西想也想不懂,只有先了解它的原理和使用方法才能进行下一步。