一、实验项目名称
飞机游戏。
二、实验项目功能描述
1.程序启动,在一个长方形范围内,范围的正中间有一个*(飞机);
2.#(敌机)首先从范围的最顶部出现,一直下移,如果下移过程中与|(子弹)的位置重合,则敌机消失,得分加一,如果下落到长方形范围的最底部,则该敌机消失,产生新敌机;
3.通过英文状态下输入a
控制*(飞机)向左移动一个位置,输入d
控制*(飞机)向右移动一个位置,输入s
控制*(飞机)向下移动一个位置,输入w
控制*(飞机)向上移动一个位置,输入空格则飞机发射子弹;
4.如果敌机在下移过程中与*的位置重合,则显示“游戏结束”,游戏结束。
三、项目模块结构介绍
1.源程序由4个预编译命令和一个主函数组成,其中主函数调用了5个函数,分别是startup()
、show()
、updataWithoutInput()
、updataWithInput()
、HideCursor()
;
2.其中函数show()
中又使用了gotoxy函数(在windows.h中),函数updataWithInput()
中用了kbhit函数(在conio.h中)。
四、实现界面展示
五、代码托管链接
贡献截图
六、实验总结
问题
1.整个运行界面闪烁严重;
解决办法:把system函数改为gotoxy()函数,使光标移动到原点位置。
2.运行界面内部有光标闪烁;
解决办法:在主函数的开头使用光标隐藏函数HideCursor()。
3.当飞机和敌机的位置重合时,显示游戏结束,但是程序并没有结束,而是停止了,当连续多次再按enter后,又继续运行;
解决办法:把system("pause")改为break。
感想
这是第二次接触游戏设计,对于游戏设计有了个初步的印象,这周照书上写了之后,想自己再加一点点东西,加完之后运行起来就发现放在不同的地方,效果不同,然后就不停的试,最后用了个自己满意的一版,另外还见到了没见过的函数,又去网上查它们的功能。写完整个游戏后感觉对一个游戏的设计真的要细究到每一个步骤,每一个变化,这是在课堂上不会教的内容。