第三次课程实验报告

一、 实验项目名称

            冷血的猎人

二、 实验项目功能描述

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函数中。
感想:还有一大堆问题没有解决,太多了,难受,但是还是有不错的感觉的,现在的我们做的游戏已经建好了,就快收工了,加油!

猜你喜欢

转载自www.cnblogs.com/xqldc/p/10989046.html