zoukankan      html  css  js  c++  java
  • 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这一编译器不能很好的使用,致使对一些游戏不能很好的编写,对游戏画面的设计遇到了问题,尝试过去查找使用,但是还是有很大的困难,慢慢来吧!不可能一下就能成功的。我相信努力了,总比不会要强很多,加油;

  • 相关阅读:
    vue中Axios的封装和API接口的管理
    如何配置Webpack/Vue-CLI实现前端跨域(附跨域大全)
    前端面试几个重要知识点
    js常用函数
    JS中的枚举和不可枚举
    可配置性属性和不可配置性属性
    Object.create()和深拷贝
    JavaScript 中 call()、apply()、bind() 的用法
    从深入到通俗:Object.prototype.toString.call()
    js原生实现三级联动下拉菜单
  • 原文地址:https://www.cnblogs.com/lyl68/p/11032680.html
Copyright © 2011-2022 走看看