2019春第四次课程设计实验报告

2019春第四次课程设计实验报告

一、实验项目名称:

空战游戏

二、实验项目功能描述

本实验不仅在前面飞机游戏实现了新式子弹,敌机的移动,击中敌机,清屏,得分,这单一的运行,而且新增加了敌机的数量,并且也实现了发射散弹的目的,更进一步的,实现了随着游戏的进行,最终会出现子弹数量越来越多的的情况,与此同时敌机的下降速度也会随之增加;

三、项目模块结构介绍:

  • 第一步:飞机的显示与控制;在二维数组int canvas[High][width]中存储游戏画面数据,元素值为0时输出空格,为1时输出飞机’’,飞机的移动实现显示以中心坐标为(position_x,position_y)、半径为ridus的挡板即在画面的最下一行、并且用left~right范围显示字符‘’,而且通过使用a、d键实现挡板的左右移动;

  • 第二步:发射子弹;当二维数组canvas[High[[width]中的元素为2时输出子弹‘|‘。改进后玩家可以连续按键,在画面中会同时显示多发子弹;

  • 第三步:击中敌机;当二维数组canvas[High[width]中元素值为3时输出敌机‘@‘,加入击中敌机,敌机数量增加并且实现敌机撞击我机出现游戏结束的功能;

  • 第四步:多台敌机;利用数组enemy_x[enemynum],enemy_y[enemynum]储存多台敌机的位
    置,可以实现同时出现多台敌机的效果。

  • 第五步:发射散弹;实现发射宽度为BulletWidth的散弹,当积分增加后,散弹半径增大,敌机移动速度加快;

总体模型:

Int main()
{
  Startup();     //初始化
  While(1)     //游戏循环执行
  {
   Show();     //显示画面
   updateWithoutInput();    //与用户输入无关的更行
   updateWithInput();      //与用户输入有关的更新
}

四、实现界面展示:

五、代码托管链接:

https://gitee.com/LYL596/game.git

六、实验总结:

这一次的游戏设计同样是比较简单的,简单的原因是因为有了前几次的基础,对游戏大体的编写,和设计都有一个适当的掌握。在此过程中还是有收获同时也遇到了或多或少的问题。这一次的编写过程中出现了发射子弹时自动进行的,并且刚开始的时候,没有出现敌机,经过反反复复的查找,感觉完全没有错误,自己仔仔细细找了很多遍,后来一直认为是这个游戏本身出了问题,后来就去找小组人员,他们说没问题,经过他们的查找,最终找出了错误的地方,一个赋值弄错了,最终导致自动发射子弹;果然自己要想找出错误还是很难,因为你肯定认为自己是没有问题的,唯一有问题的是其他因素;对游戏设计这一块还是不是特别懂,要是不去参考的话,自己很难完成一个游戏的编写;同时我发现自己对vs这一编译器不能很好的使用,致使对一些游戏不能很好的编写,对游戏画面的设计遇到了问题,尝试过去查找使用,但是还是有很大的困难,慢慢来吧!不可能一下就能成功的。我相信努力了,总比不会要强很多,加油;

原文地址:https://www.cnblogs.com/lyl68/p/11032680.html