# TankBigWarGame **Repository Path**: wangtian-yu/TankBigWarGame ## Basic Information - **Project Name**: TankBigWarGame - **Description**: TankBigWar,坦克大战,跟着韩顺平老师的30天Java基础一点一点自己敲的,完成后很有成就感 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-10-22 - **Last Updated**: 2022-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TankBigWarGame #### 介绍 TankBigWar,坦克大战,跟着韩顺平老师的30天Java基础课程一点一点自己敲的,完成后很有成就感 ### 界面展示 ![界面展示](https://foruda.gitee.com/images/1666499529871505001/8fd55fa4_11803711.png "2.PNG") ![信息界面](https://foruda.gitee.com/images/1666500129609365173/945b56d5_11803711.png "3.PNG") #### 软件架构 软件架构说明:简单用JFrame组件绘制的坦克和界面,对于多线程、面向对象编程、JFrame的使用有很好的帮助,是初学者不错的练手项目。 ![系统架构](https://foruda.gitee.com/images/1666499121001113461/d750da7f_11803711.png "6.png") #### 安装教程 1. 下载后只需要执行Main方法即可 2. 声音和txt文件统一放到src目录底下,用的是相对路径编写的代码,所以不用担心运行不了 3. 启动Main方法后,要在控制台选择是新游戏还是读档,键盘输入1:新游戏;键盘输入2:读档 ![选择模式](https://foruda.gitee.com/images/1666499243698498283/872f28c2_11803711.png "1.PNG") #### 游戏说明 1. 右侧是击毁敌方坦克数量、玩家坦克剩余数量 2. 进入游戏后,一般输入法会切换成中文,要默认切换一下再进行操作 3. 键盘方向键控制坦克方向,空格键射击。 4. 进入游戏后按数字键1可以召唤敌方坦克 5. 进入游戏后,如果我方坦克被敌方摧毁,可以按数字键2原地复活 6. 进入游戏后有BGM背景音乐、我方发射子弹有音效、我方或者敌方坦克被摧毁有爆炸音效 #### 项目涉及技术功能 1. 玩家坦克移动、开火、撞墙判定 2. 敌方坦克多线程移动、开火、移动时碰撞判定和转向 3. 背景音乐 4. 游戏进度存档 5. 玩家击毁后原地复活 6. 召唤敌方坦克 7. 显示玩家坦克剩余生命,显示击毁敌方坦克数量 8. 点击叉关闭窗体后保存敌方坦克位置,后续读档的时候可以恢复敌方坦克位置 #### 游戏结束判断 1. 敌方击败我方坦克3条命,即游戏结束 ![游戏结束](https://foruda.gitee.com/images/1666499458718307814/c8683635_11803711.png "4.PNG") #### 项目不足与优化空间 1. 游戏结束后无背景音乐 2. 碰撞处理:敌方坦克在运行时,碰撞后会发生转向无误,但是如果转向的时候发生碰撞,则两辆坦克会卡住 3. 可以增加游戏结束机制:比如可以增加胜利条件,击毁多少敌方坦克就可以胜利,或者增加我方的家,一旦敌方击毁我家即失败 4. 在召唤敌方的基础上,做到触发定时任务,每隔一段时间召唤一定数量敌方坦克 5. 增加我方坦克的碰撞处理 6. 直接点叉关闭窗口的时候,保存我方坦克位置,下次读档的时候恢复我方坦克位置、敌方子弹位置、我方子弹位置 7. 增加一定障碍物:墙壁、河流、绿茵等等 8. 显示敌方剩余坦克数量