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 特效跟随
视频、源码、文档: