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/特效。5 x" F" S2 N5 A- s
9 D6 t- e8 X" m) |3 u& V; }, z2 ?# W6 M3 S6 W- ^% _; U D
8 y& F( @0 o; l5 m* Q3 F/ _
) |7 w2 ]" i% u: f0 x( n+ {% v6 `( o
# m: H0 L$ O% U9 H( s8 b* _0 z5 X项目说明:
8 Q9 ^' b j' d% ?/ d0 S0 G4 i1.程序结构分析:
' N7 v# Q l# o--1.1 窗体: 顶层容器,用来显示画板等UI组件
- p8 j1 G; o$ F; D--1.2 画板: 取出游戏数据进行绘制 : D) Z' v3 y) k; M5 T6 u8 l
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问
/ r8 P1 F8 Q+ d+ s--1.4 数据管理: 要求游戏中任何地方可以直接获取数据 % w- g0 `1 S# t3 e2 a- N* W: M3 J8 W2 v
--1.5 中心计时器: 让画板反复绘制
# G. J8 B- @' j2 S: ?" h ~4 y- J( v4 A# |4 G
4 W: \6 w. H# C5 Z; B# f
2.基础结构编写 , V( E; u) ^ e
窗体:GameFrame extends JFrame
, r2 m) `1 k+ n* E- b画板:GamePanel extends JPanel ; t7 M( x4 `! I. E. a( ?
资源管理:Res - `0 I8 h. z& M3 v8 R/ f! W) Z
数据管理:Data
, Q$ w/ ~' V$ I中心计时器:Timer extends Thread
1 o/ R4 Y5 y* R8 g! S- _, m
$ J" m- z9 L; h# D" ?0 d6 U9 x3 |" m: H/ h" }' e! H4 V2 R
3.让坦克动起来
. b1 \) C7 e+ b, ?--3.1.在Tank中添加move方法,在画板重绘时调用
; b8 l) s" f8 m6 J--3.2.在窗体中加键盘监听,控制玩家坦克移动 V9 N1 O9 \: m0 h: U
--3.3.边界限定,防止坦克移动到视野外 # ^, O" y1 w4 B) D2 h# B
+ d4 }+ r6 K! C' U5 D P
) j. T4 ?2 k* B ^6 Y
4.添加可以360度旋转的炮筒 ' [/ e' V* v' O$ P Q
--4.1工具类
" T3 Z9 I8 A% B$ Y/ ^5 \--4.2加入资源(红蓝炮筒) . s6 x0 |0 I L2 @1 a+ T
--4.3指定方向画出炮筒 ' Z. R+ w7 \+ u2 K7 @! b& V5 o
--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点
9 M- Y- y+ ]4 J/ b. ^0 {6 @/ W" H5 A9 d0 H
' }* H3 }4 o6 C5.让坦克可以打出子弹
. G# |4 @2 c* w! B& U--5.1 新建子弹类 , R4 B% K/ ^& t# {5 l9 m2 J/ p
--5.2 把子弹加入到游戏架构中 7 G% F5 V$ F0 y, Y( f
--5.3 画出子弹 1 N6 `. b0 I9 P7 |. \ m) `
--5.4 attack 3 M* e$ G! O3 @2 G* S6 ?( T
# w: B4 e5 ^6 B
$ P- j3 [5 a9 [# z" @6 e& a6.解决前面问题,调整优化
. P9 g: F1 r' J) t" I( x3 \, ~--6.1 将点系统数据换成double类型 3 f4 w. A0 k2 r" @/ A; x7 f
--6.2 调整坦克的目标点位置在鼠标头部 # r; Z6 Z: W, u9 B& k: g
--6.3 把鼠标监听mouseClick改为mousePressed % N3 I+ }; E. x; {5 P% h( W! R( L
--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系;
; |% N' x$ u" k. {2 P/ g5 P$ @+ i. }--6.5 子弹从炮口发出
7 g, f% d" m: F w9 j0 N. h" W: w' e# Q. B: ^
5 q4 y$ y0 n) [: O( K% Q, E7.一大波机器人正在靠近
- g7 @3 }5 M2 W; [6 u--7.1 分队伍,变颜色
1 v) S! w- l! V1 R# B--7.2 创建Robot类继承Tank
& b8 Z1 \( Q8 T% d' k$ L5 X3 D--7.3 简单AI让Robot动起来
@- u! e4 B* M4 V--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化)
+ [3 c5 ]) x. j7 g0 T) ]--7.5 让Robot随机指定目标点 2 [3 q$ S+ x+ D3 P7 c- E o( b: T; o
--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中) " |/ L8 i2 Q) Q- H" n# m9 C; v: W
) m* m' u+ y5 ^, }1 Q3 {
7 W5 y# h( c/ P8 Z8.游戏数据的管理与维护
7 ~) ~* g5 g6 _. a& |--8.1 工厂模式创建对象
3 R. b+ I( @1 r--8.2 移除游戏数据的方法
8 z- A" k2 _+ Q
0 O! x) i9 S5 D+ H) V3 D/ n1 f9 a, G, J
9.这子弹是真的 ! t, L$ e& ^" X( O6 l3 A# ^
--9.1 在子弹移动过程中遍历所有坦克计算距离 9 C; [# R* u0 V( S7 p' ]4 Y
--9.2 让子弹不伤害自己和队友 ; g' M7 o' r9 D. \2 O/ @7 P
--9.3 给坦克加上攻击力和生命值 . s1 m2 G2 \7 }( r" Y* v
--9.4 绘制血条 5 j+ e+ _* H9 e* `3 v
) L- U7 A! b% l5 o+ P( }
0 E! Z; N y& F2 m4 z$ A$ H* m5 r
10.特效 5 R9 n- }- I! j: h: I7 z1 Y! Z Q
--10.1 加载素材
8 E2 x5 d8 F* O; [+ p1 T7 x--10.2 编写Effect类,加入到游戏架构中 f, W% J3 ]/ l, g& ?/ H- O
--10.3 实现多种特效,添加特效播放速度
1 R) D% t5 V; W4 {--10.4 特效播放次数
& X5 B1 e5 G0 C0 _; r- P0 O2 r. v1 p9 u--10.5 特效跟随 4 B# V. b4 h2 O- y \4 F. s9 V. S
5 i2 ?/ L9 ?+ s* X
% m5 X8 B% S: ~密码:
# F5 H8 \; f9 G& z6 j6 M |
|