zoukankan      html  css  js  c++  java
  • 第三次课程实验报告

    一、 实验项目名称

                冷血的猎人
    

    二、 实验项目功能描述

    1、 用w、s、a、d控制猎人上下左右,并能斜向行走。
    2、 击败敌人,敌人一波比一波多
    3、不同的敌人随机出现,进攻性动物会向人的方向移动,其它敌人随机给一个坐标,然后斜向移动到随机坐标后再随机一个坐标,直到死亡。
    4、有边界,不能出界
    5、野怪已经有伤害了,人物还只能发射子弹,但还没有伤害。

    三、 项目模块结构介绍(文字+总体模型)

    1、 开始模块:gamecome():输出游戏开始前的图片和文字还有说明。能选择开始游戏和结束游戏。
    2、 游戏模块:game():在主函数中,内涵初始化模块,持续运行模块,显示画面模块,有关数据输入运行模块。游戏结束模块。
    3、 初始化模块:startup();函数:指定游戏界面的宽高,读取各种图片到各个IMAGE对象中,设定自己操作的人物的初始状态,最开始出现的敌人数量,显示背景和人物
    4、 持续运行模块:updateWithoutInput():如果敌人数量为零,重新生成敌人,且生成的敌人数一次比一次多,直到最大值。生成的敌人随机,小敌人几率低,大敌人几率高,生成在游戏界面上的位置也随机。生成的敌人一部分会向人的方向移动,一部分随机移动,且不会出界。
    5、 显示画面模块:show(),显示背景,人物朝哪个方向移动,人物的图像就改变成向哪个方向的图片。敌人的血量大于零,则输出敌人图片,否则不输出图片,
    6、 有关数据输入运行模块:updateWithInput():定义鼠标信息,得到鼠标输入,判断输出时人物图片。人物移动输入,如果不达到边界,则输出移动时的人物图片,如果是边界,则不动。
    7、 游戏结束模块:gameover():结束游戏,进行后续处理,用户可以选择继续游戏和结束游戏,继续游戏则重新初始化,全部重来。结束游戏则退出游戏。

    四、 实现界面展示



    五、 代码托管链接

    https://gitee.com/xqldc/xqldx.git

    六、 实验总结(提出问题+解决办法+感想)

    遇到的问题,嗯嗯嗯,问题实在是太多了,就举几个比较有代表性的吧。
    遇到的问题一:野怪在走向生成的随机坐标的时候,会因为斜率过大,导致y变换过大。
    解决的办法:换了一种算法,把斜率控制在正负根号三以内,超过则不用斜率计算。
    遇到的问题二: 最后的继续游戏和结束游戏八个字输出不了。
    解决的方法:通过多次试探,发现必须在FlushBatchDraw();函数前输出;所以把输出文字写在了show函数中。
    感想:还有一大堆问题没有解决,太多了,难受,但是还是有不错的感觉的,现在的我们做的游戏已经建好了,就快收工了,加油!

  • 相关阅读:
    CTK 编译
    MITK 2021.2编译
    执行git add .报错LF will be replaced by CRLF in
    vscode标记“&&”不是此版本中的有效语句分隔符
    vscode prettier插件使用无效
    vscode使用技巧
    kafka及hdfs常用命令
    博客已迁移
    SVM
    逻辑回归
  • 原文地址:https://www.cnblogs.com/xqldc/p/10989046.html
Copyright © 2011-2022 走看看