Skip to content
This repository was archived by the owner on Sep 19, 2026. It is now read-only.

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tank

SCU 2025 C++ term project.

Tech stack: SDL3+ImGui

Made by LJM12914.

坦克大战

1. 游戏概述

玩家需要控制己方坦克保卫司令部,消灭所有来袭的敌方坦克。当司令部被击毁时,游戏结束。

操作说明: 玩家使用上下左右键控制坦克移动,空格键发射子弹

游戏胜负条件:

  • 成功:摧毁所有敌方坦克且司令部未被击毁。
  • 失败:司令部被击毁或玩家所有坦克耗尽。

设计说明:

  • 地图需要使用到所有的建筑元素,设计合理。
  • 说明中的炮弹射速为相对单位,实现时可合理取值。
  • 合理的开始界面和结束界面设计

2. 游戏元素与说明

2.1 玩家坦克

玩家坦克为绿色外观,共有三种等级,具体属性如下:

  • L1 坦克(tank_1):耐久度 1。
  • L2 坦克(tank_2):耐久度 2。
  • L3 坦克(tank_3):耐久度 3。

玩家坦克初始为L1级,仅能在地图中存在一发炮弹;当炮弹消失后方可继续发射。

玩家可以通过拾取果实增强坦克能力。

当玩家坦克被摧毁后,若玩家仍有剩余坦克,则从复活点以 L1 级重新加入战斗;否则游戏失败。

2.2 敌方坦克

  • 普通坦克(enemy_1):耐久度 1,射速 1,白色外观。
  • 速射坦克(enemy_2):耐久度 2,射速 2,白色外观。
  • 装甲坦克(enemy_3):耐久度 3,射速 1,白色外观。
  • 目标坦克(enemy_4):耐久度 4,射速 1,红色外观,目标坦克被摧毁后在摧毁位置随机掉落一种果实,果实只能被玩家坦克拾取。

总计 20 辆敌方坦克,所有类型出现概率随机,但连续 3 辆非目标坦克后一定会出现一辆目标坦克。

2.3 地图建筑

  • 红砖:耐久度 1,不可穿过,受到炮弹攻击后被摧毁。
  • 铁墙:不可摧毁,不可穿过。
  • 河流:炮弹可穿过,但坦克无法通过。
  • 森林:坦克与炮弹可穿过,并能提供隐蔽效果。

2.4 果实

游戏中存在多种果实,拾取后可获得增益:

  • food_star:坦克升级,耐久度加 1。
  • food_tank:增加一辆备用坦克,在当前坦克被摧毁后复活。
  • food_gun:坦克的炮弹速度加 1。
  • food_shell:允许坦克同时存在两发炮弹。

2.5 炮弹

炮弹是坦克的攻击手段,属性如下:

  • 伤害:1
  • 速度:由发射坦克的等级决定
  • 效果:命中目标会降低其耐久度,耐久为 0 时目标消失

2.6 司令部

耐久为 1。敌我双方的炮弹皆可打爆。当司令部被摧毁时,游戏失败。

3. 作业提交

下载作业附件资源并解压,将文件夹名修改为你的学号和姓名。按作业要求完成坦克大战游戏的编码实现和设计报告,最后将文件夹打包上传。

注意:最终上传的压缩包文件大小不能超过 10 MB

附件资源:下载

About

原 C++ 学期项目,发布后一天内又宣布取消,但是还是做了一半

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages