TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
- 软件类别:
- 毕业设计>JAVAWEB
- 软件大小:
- 100+ MB
- 软件语言:
- 简体中文
- 资源密码:
- 回复查看提取码
- 更新时间:
- 2016-12-8 14:17
①科帮网的核心思想是分享,我们更愿意会员拿出资源分享获得J币;
②不禁止转载!只要不恶意诋毁科帮网,不大量发布广告,科帮网欢迎同行合作,共同发展!做资源站就是为了分享;
③科帮网资源来自于网络,不保证每个资源的完整可用,当然如果为J币充值购买,资源出现问题,可联系客服处理!
友情提示本站毕业设计解压密码统一为本站网址www.52itstyle.com或者52itstyle.com
更多毕业设计可加QQ群:26490602
软件介绍
【大连理工大学】java坦克大战项目实训,坦克可以4个方向移动,炮筒可以随鼠标360度旋转,鼠标左右键射击,伤害/碰撞/技能/AI/特效。7 H2 ]! L: C B' p" V
" y8 a, Z0 l3 H9 b2 T0 L8 A8 O) X* k3 ~1 F" a$ S
" _8 @, m0 j9 s' U" U/ Z1 R0 |
* H: k/ R. U$ a3 L; w: Y: m( F
项目说明:. q2 X, g$ M' w1 T: N! G: l
1.程序结构分析:
) w. I H1 m5 m--1.1 窗体: 顶层容器,用来显示画板等UI组件
" p* k4 _9 j2 E* U--1.2 画板: 取出游戏数据进行绘制 6 b M6 _6 v5 ]; P; r8 X$ c5 K$ P
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问
0 X7 B( X- p7 x+ n/ N" O--1.4 数据管理: 要求游戏中任何地方可以直接获取数据 . [& E! _* |- K
--1.5 中心计时器: 让画板反复绘制
+ a$ F0 R2 {( j( E6 S& d8 @4 {: |$ T- O
9 D/ ~4 N2 M3 i$ D B$ ]
2.基础结构编写 ; J6 l* f/ `9 p' z9 m- S
窗体:GameFrame extends JFrame
; t: B; `' M3 U3 a3 }9 U画板:GamePanel extends JPanel & s. E8 J( I+ @1 c3 D, Z2 \( |( s
资源管理:Res 6 ^, w, b3 _$ ^
数据管理:Data 3 _6 u) r# p( s- I
中心计时器:Timer extends Thread
; {% C5 Q! D; L0 m' r
. @- G7 N# t$ j& N
5 x; _. d$ i( D$ k5 ]' p& f3.让坦克动起来 3 k" x8 c9 W) h+ W
--3.1.在Tank中添加move方法,在画板重绘时调用
0 G( d3 K/ Q' j, {1 R" u--3.2.在窗体中加键盘监听,控制玩家坦克移动
7 o# b7 m, i9 u5 f: j5 v+ n& c% V--3.3.边界限定,防止坦克移动到视野外
% m' i$ ?/ z0 Z& p* D _
. U Z6 }. ^: v( D! m/ h: E4 N: t. l: t4 z
4.添加可以360度旋转的炮筒
k1 q. q8 Q# H$ C% E--4.1工具类
1 S$ {& g% |5 r7 }--4.2加入资源(红蓝炮筒) " @# N! |1 [3 u: `
--4.3指定方向画出炮筒
! c2 X0 z g6 d. k, H; K: ]--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点
- n/ X( `# B$ U2 Z3 c0 _
( H& A# X( S' d% v) C4 ]/ n3 K& i _4 s9 c/ r: r- l
5.让坦克可以打出子弹
$ _$ d- r- K! @# ~3 p; {, @--5.1 新建子弹类
* n" \- o/ Y$ ]7 l' W& Y--5.2 把子弹加入到游戏架构中
6 K: m4 _" M5 d7 `% d--5.3 画出子弹
* i# o* h/ S6 x3 z2 Z5 m9 R5 f4 i--5.4 attack
/ H. Y: R) t+ G4 U/ e5 _( u; E& P/ U% X
& X/ h! W% N# C2 Z$ M6.解决前面问题,调整优化 - `$ o( |& M! C
--6.1 将点系统数据换成double类型
0 c6 P+ C* p: `- K% f+ N--6.2 调整坦克的目标点位置在鼠标头部
0 s9 }: _" @5 g0 @# M4 B--6.3 把鼠标监听mouseClick改为mousePressed ' N# Z$ F4 p L. P$ ]9 l& z, ^
--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系;
3 r: @9 e3 f! Z: N4 f, v--6.5 子弹从炮口发出 4 v3 q- `) Z5 C+ G8 _3 n
7 g! y# } d# S7 O4 e
- }; r8 t; X! x( }7.一大波机器人正在靠近 0 l% G; J* d7 y3 p! k! h$ V+ G
--7.1 分队伍,变颜色
$ l- l$ x3 F: w, j! S* T5 U--7.2 创建Robot类继承Tank 3 `& Q% S0 p* G3 W3 |2 J
--7.3 简单AI让Robot动起来
# Z. X3 |) O* O( i9 i--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化)
% [: d# h- E1 l/ |7 z5 t: w7 d--7.5 让Robot随机指定目标点
( R. P/ K% d8 H--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中)
+ Z% \( Z) N c, c* P% c3 R' G1 E& d8 T: d( r' S$ ~$ f; ~: J" L. T6 u8 S* P5 ~
1 W/ Q: W1 J9 c0 g8.游戏数据的管理与维护 ( O9 h4 A+ {9 W; h. y3 y% Z9 J
--8.1 工厂模式创建对象 0 H# d% T" z; W. b' _% y
--8.2 移除游戏数据的方法
/ @/ h1 @0 ?3 P# t& h3 Y
. I& _- p/ q8 N6 z3 f5 Q
. \" }0 r7 h6 \. G. \3 n9.这子弹是真的 , ]% b; d' n& w3 e- y h7 U4 ?9 |
--9.1 在子弹移动过程中遍历所有坦克计算距离 " N. C& w" o! M. }: v
--9.2 让子弹不伤害自己和队友
+ ?/ x0 e8 _0 g# {* d J- V--9.3 给坦克加上攻击力和生命值 $ g2 u4 b% U+ _6 b! z$ L8 |9 V) B
--9.4 绘制血条 & p! q8 i9 U' X2 q
0 |+ p& n" V& ^. o6 K: N3 y0 M
2 u) s/ t0 m f3 c) ^10.特效 ; N" ^0 L' Y3 @
--10.1 加载素材 + y7 ~) l: {6 p. q
--10.2 编写Effect类,加入到游戏架构中 ' O0 o+ x3 E( O- T
--10.3 实现多种特效,添加特效播放速度 * c$ R9 @' B$ ]' u* W/ m3 `
--10.4 特效播放次数
; h1 T" {, v) Z$ y& g3 |" G--10.5 特效跟随
7 l- d; E4 V* w/ h) W- M# c6 L+ u" A3 w4 Y! S7 x
1 {% A3 b9 N% ]/ l+ e密码:
3 i/ @9 y! t/ Y% t7 N; X |
|