SDUST 小学期飞机大战简述 - 0综述
2020-07-03
- 版权声明:原创文章,未经博主允许不得转载
后面的章节大概率鸽了,有需要的可以在仓库主页提issue
https://github.com/weilinfox/SDUST_PlaneGame
这是 SDUST 小学期飞机大战讲解的第一章,就是吹吹水,可以跳过。
SDUST Computer Science 小学期的飞机大战实训。本来还想提前学学 MFC ,但是因为疫情,你懂的。所以我也是小学期两周临时学的,代码比较渣,请多多指教(鞠躬)。
并不是说 Qt 不好,很多人说 Qt 又跨平台云云,学 MFC 干啥。 MFC 在 Windows 平台具有天生优势,对于理解 Windows 平台 GUI 程序运作还是有很大帮助的。有人说“我用Mac”,那我还用龙芯呢。
理解起来还是费劲,不过熬了一个礼拜终于熬出来了(我报告都要写完了跟我说还有一周!不是说好的两周吗 小声)。
预备暑假记录一些在这两周不到的 MFC 学习时光中所学到的知识,在尝试把对 MFC 的感性认识上升到理性认识的同时,试图让后来者可以在这较短的时间里更好地理解它、应用它。当然如果期末考砸了…… (确实考砸了,但是暑假不能闲着吧-_-)
听我BB了这么多,我知道还是代码比较吸引人,但这不是给你白嫖的,整个项目是在dcq老师提供的模板上由我独立进行了大量的修改,除了少数几个类外已经“面目全非”。这的初衷是让你更好的理解程序(虽然我怀疑大概率会把你引向更多的坑)。如果哪里我搞错了,教教我呗~
项目地址,说是项目,其实就是打了个包扔上去了(又不是不能用)。
我的环境
OS: Windows10
IDE: Microsoft Visual Studio Community 2017
经测试,二进制兼容Windows7、Windows10和Wine
实现的功能
V2.0.0
修改老师提供的模板工程,形成一个大体的框架,大部分实际功能并没有加入。
V4.0.5
-
基本操作:WASD进行上下左右移动,空格键发射导弹;双人模式下玩家2通过方向键移动,回车键发射导弹;按 p 暂停;按 o 结束当前游戏
-
血量:敌机和玩家战机的血量由血条显示
-
导弹:导弹由玩家战机打出,打中敌机时扣除敌机总血量 20 % 的血量
-
子弹:子弹由敌机打出,打中玩家战机时扣除战机总血量 20 % 的血量
-
直线子弹:当玩家战机处在敌机直线攻击范围内时触发子弹直线发射,发射速度与敌机移速有关
-
斜向子弹:当玩家战机和敌机距离低于一定值时,敌机根据玩家战机的位置斜向发射子弹,发射角度与敌机移速有关
-
奖励:当玩家战机消灭敌机(护甲消灭除外)时有一定概率掉落奖励,拾取即可获得,道具(散弹和红心)持有数量具有上限
- 散弹:按 2 激活,发射导弹时自动替换为散弹,每次激活每人 50 发(发射一次为一发),重复激活可叠加
- 红心:按 3 使用,每人回复总血量 50 % 血量;如果有玩家血量小于等于总血量 0 % 时会自动使用并对该玩家增加血量
- 护甲:拾取即自动对每人进行激活,时长为三秒,可叠加。激活期间不受伤害,并对接触到的子弹和敌机造成伤害。对于子弹,使子弹爆炸失效;对于敌机,造成总血量 100 % 的伤害
- 加速:拾取即自动对每人进行激活,时长为三秒,可叠加。激活期间移速翻倍
- 血量加成:无需拾取,当玩家战机消灭敌机时,若有玩家战机血量低于总血量 50 % ,获得总血量 5 % 的血量加成
-
模式:无敌模式,单人模式、双人模式和双人无敌
- 无敌模式:道具持有数量上限为 25 ,奖励掉落概率为 100% ,且持有的红心数量永远大于等于 1
- 单人模式:道具持有数量上限为 2
- 双人模式:散弹持有数量上限为 2 ,红心持有数量上限为 3
- 双人无敌:道具持有数量上限为 25 ,奖励掉落概率为 100% ,且持有的红心数量永远大于等于 1
-
BOSS:消灭一定数量敌机后敌机召唤 BOSS ,BOSS 产生的同时敌机数量减少,消灭 BOSS 后进入下一卡关
-
卡关:随着卡关增加敌机子弹速度、BOSS 血量等会有一定提升;非无敌模式中升入下一卡关时红心上限提升 1 ,单人模式上限最高为 5 ,双人模式上限最高为 6。卡关数量无限
-
任务失败:玩家战机血量降至总血量 0 % 及以下且无法恢复时,任务失败,游戏结束;可以按 r 重玩;HJKL可以重新选择模式
关于源码
我把每个比较重要的版本分别在release发布,其中 .7z
为源码,.exe
为编译好的可执行文件。
如何学习
首先当然是认真听课啦,然后自己在网上找博客,必要时参考微软的官方文档。
本章完
by SDUST weilinfox