山东科技大学MFC飞机大战

笔者是2022级软件工程学生,由wzh老师带班学了1年的代码。

C++程序设计综合实践大作业为MFC飞机大战。笔者菜的一比,会的东西相当有限,就踏马会贴。在痛苦地糊弄完飞机大战代码后,被wzh老师一针见血地评价为“垃圾代码”,并且最终得到了“及格”的成绩。

笔者的飞机大战实现的功能并不差,但究其代码却相当垃圾,非常sb。

这根源在于代码的实现很烂。笔者大多数功能都靠在PlaneGameView.cpp里写全局变量或直接写各种代码。比如“关卡”,“BOSS血量控制”,“滚动背景”等等等。这种代码确实是非常垃圾的。我们应当写更多的“类”来实现各种功能。比如“关卡类”,“背景类”等。但笔者能力实在低下,没能够在0基础的条件下,在两个星期内实现。于是在此写文,希望能够给后人带来些许的指点与思考。飞机大战各种功能的实现尽量用写类的方式来实现,避免写太多的全局变量,也在某一个文件里塞了过多的代码,以致代码糅杂难看。

笔者在此给出了“背景类”实现滚动背景的源代码,祝后人能够有所得!

笔者的飞机大战:https://download.csdn.net/download/weixin_73829826/88103729?spm=1001.2014.3001.5503

仅有背景类的飞机大战:

https://download.csdn.net/download/weixin_73829826/88101339?spm=1001.2014.3001.5503

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一个飞机大战的游戏,完成一个界面简洁、操作简单的桌面游戏。该飞机大战项目主要使用的是MFC编程,运用MFC中的类以及自己创建的类,设计好各个类之间的继承关系,实现飞机大战游戏的简单功能。 基本功能 (1)设置一个战机具有一定的速度,通过键盘,方向键可控制战机的位置,空格键发射子弹。 (2)界面中敌机出现的位置,以及敌机炸弹的发射均为随机的,敌机与敌机炸弹均具有一定的速度,且随着关卡难度的增大,数量和速度均增加。 (3)对于随机产生的敌机和敌机炸弹,若超过矩形区域,则释放该对象。 (4)添加爆炸效果,包括战机子弹打中敌机爆炸、敌机炸弹打中战机爆炸、战机与敌机相撞爆炸以及战机子弹与敌机炸弹相撞爆炸四种爆炸效果。且爆炸发生后敌机、子弹、炸弹均消失,战机生命值减一。 扩展功能 (1) 为游戏界面添加了背景图片,并在战机击中敌机、敌机击中战机、以及战机敌机相撞时均添加了背景音效。 (2)为游戏设置了不同的关卡,每个关卡难度不同,敌机与敌机炸弹的速度随着关卡增大而加快,进入第三关以后敌机从上下方均会直接向战机次发射炸弹。战机每打掉一个敌机则增加一分,同时为战机增加一个生命值,当战机得分超过100分则可进入下一关;每进入一关敌机速度都会加快,分别从上下两方飞出,在第四关和第五关有boss,分别以不同的方式发射子弹。 (3)在游戏界面输出当前游戏进行信息,包括当前得分、当前关卡、生命值以及boss生命值。 (4)增加了鼠标控制战机位置这一效果,战绩的位置随着鼠标的移动而移动 (5)实现了暂停游戏的功能,玩家可通过键盘上的‘Z’键,对游戏进行暂停。‘S’键开始。 (6)实现了设置游戏难度的功能,可以通过菜单栏上的设置难度选项设置难度。同时菜单实现了查看游戏说明和重新开始的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值