SCU 2025 C++ term project.
Tech stack: SDL3+ImGui
Made by LJM12914.
玩家需要控制己方坦克保卫司令部,消灭所有来袭的敌方坦克。当司令部被击毁时,游戏结束。
操作说明:
玩家使用上下左右键控制坦克移动,空格键发射子弹
游戏胜负条件:
- 成功:摧毁所有敌方坦克且司令部未被击毁。
- 失败:司令部被击毁或玩家所有坦克耗尽。
设计说明:
- 地图需要使用到
所有的建筑元素,设计合理。 - 说明中的炮弹
射速为相对单位,实现时可合理取值。 - 合理的开始界面和结束界面设计
玩家坦克为绿色外观,共有三种等级,具体属性如下:
- L1 坦克(
tank_1):耐久度 1。 - L2 坦克(
tank_2):耐久度 2。 - L3 坦克(
tank_3):耐久度 3。
玩家坦克初始为L1级,仅能在地图中存在一发炮弹;当炮弹消失后方可继续发射。
玩家可以通过拾取果实增强坦克能力。
当玩家坦克被摧毁后,若玩家仍有剩余坦克,则从复活点以 L1 级重新加入战斗;否则游戏失败。
- 普通坦克(
enemy_1):耐久度 1,射速 1,白色外观。 - 速射坦克(
enemy_2):耐久度 2,射速 2,白色外观。 - 装甲坦克(
enemy_3):耐久度 3,射速 1,白色外观。 - 目标坦克(
enemy_4):耐久度 4,射速 1,红色外观,目标坦克被摧毁后在摧毁位置随机掉落一种果实,果实只能被玩家坦克拾取。
总计 20 辆敌方坦克,所有类型出现概率随机,但连续 3 辆非目标坦克后一定会出现一辆目标坦克。
- 红砖:耐久度 1,不可穿过,受到炮弹攻击后被摧毁。
- 铁墙:不可摧毁,不可穿过。
- 河流:炮弹可穿过,但坦克无法通过。
- 森林:坦克与炮弹可穿过,并能提供隐蔽效果。
游戏中存在多种果实,拾取后可获得增益:
food_star:坦克升级,耐久度加 1。food_tank:增加一辆备用坦克,在当前坦克被摧毁后复活。food_gun:坦克的炮弹速度加 1。food_shell:允许坦克同时存在两发炮弹。
炮弹是坦克的攻击手段,属性如下:
- 伤害:1
- 速度:由发射坦克的等级决定
- 效果:命中目标会降低其耐久度,耐久为 0 时目标消失
耐久为 1。敌我双方的炮弹皆可打爆。当司令部被摧毁时,游戏失败。
下载作业附件资源并解压,将文件夹名修改为你的学号和姓名。按作业要求完成坦克大战游戏的编码实现和设计报告,最后将文件夹打包上传。
注意:最终上传的压缩包文件大小不能超过 10 MB
附件资源:下载