Java坦克大战项目实训(大连理工)

\[大连理工\]Java坦克大战项目实训 项目导师:夏增明 ![](https://image.xsoftlab.net/baike/articleImages/318ce85264ff47bdba2765b53da205f4.jpg) 1.程序结构分析: --1.1 窗体: 顶层容器,用来显示画板等UI组件 --1.2 画板: 取出游戏数据进行绘制 --1.3 资源管理: 统一管理所有素材,任何地方可以直接访问 --1.4 数据管理: 要求游戏中任何地方可以直接获取数据 --1.5 中心计时器: 让画板反复绘制 2.基础结构编写 窗体:GameFrame extends JFrame 画板:GamePanel extends JPanel 资源管理:Res 数据管理:Data 中心计时器:Timer extends Thread 3.让坦克动起来 --3.1.在Tank中添加move方法,在画板重绘时调用 --3.2.在窗体中加键盘监听,控制玩家坦克移动 --3.3.边界限定,防止坦克移动到视野外 4.添加可以360度旋转的炮筒 --4.1工具类 --4.2加入资源(红蓝炮筒) --4.3指定方向画出炮筒 --4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 5.让坦克可以打出子弹 --5.1 新建子弹类 --5.2 把子弹加入到游戏架构中 --5.3 画出子弹 --5.4 attack 6.解决前面问题,调整优化 --6.1 将点系统数据换成double类型 --6.2 调整坦克的目标点位置在鼠标头部 --6.3 把鼠标监听mouseClick改为mousePressed --6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系; --6.5 子弹从炮口发出 7.一大波机器人正在靠近 --7.1 分队伍,变颜色 --7.2 创建Robot类继承Tank --7.3 简单AI让Robot动起来 --7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化) --7.5 让Robot随机指定目标点 --7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中) 8.游戏数据的管理与维护 --8.1 工厂模式创建对象 --8.2 移除游戏数据的方法 9.这子弹是真的 --9.1 在子弹移动过程中遍历所有坦克计算距离 --9.2 让子弹不伤害自己和队友 --9.3 给坦克加上攻击力和生命值 --9.4 绘制血条 10.特效 --10.1 加载素材 --10.2 编写Effect类,加入到游戏架构中 --10.3 实现多种特效,添加特效播放速度 --10.4 特效播放次数 --10.5 特效跟随 视频、源码、文档: