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/特效。 B/ d7 c* f1 O. X5 a- W; ]/ l
& f9 E3 J$ ~& |+ J5 I6 q: A' Y9 x# w: u# d
; o& g$ B: k. r( x% p3 z
g8 n& _+ ?6 z+ f/ w, z) Q' ]) N
5 g F5 x; {' Y+ m$ f项目说明:$ x! q+ q9 ~9 w' ?- C5 ]! f8 H
1.程序结构分析:
4 q" q1 m! o& M) d--1.1 窗体: 顶层容器,用来显示画板等UI组件 9 n& ?+ @+ Z! i3 @
--1.2 画板: 取出游戏数据进行绘制 8 }4 M' p0 @6 `' |: w7 C
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问 * F V$ L% g) S+ b* E
--1.4 数据管理: 要求游戏中任何地方可以直接获取数据
% D# p' I* Y# ~7 Y( M4 R" A--1.5 中心计时器: 让画板反复绘制
, W& ~0 R0 u0 J: t" h9 w3 }3 c4 L' j8 }( u! b; I9 ?$ u
7 ^4 K! A) F1 e; S2.基础结构编写
# o. G- ]5 w v( [8 z. P2 _窗体:GameFrame extends JFrame
: C, Q' P% o7 [画板:GamePanel extends JPanel # `. C+ m; `* g
资源管理:Res 4 H: z! t! x+ i2 _) {* A
数据管理:Data 0 h& q [% `9 c3 M9 U r
中心计时器:Timer extends Thread
+ P9 w5 P$ ^3 W" k4 b8 K5 R8 ^# c9 ~% Z0 Y) u. J1 H' S/ |; R
7 A+ `; d5 [! L, d# j' `2 A6 D8 K3.让坦克动起来
7 Q1 ]; o7 e1 g" r! s--3.1.在Tank中添加move方法,在画板重绘时调用 , ]; ^ s8 m |$ C- @" m+ ]) d- f7 \
--3.2.在窗体中加键盘监听,控制玩家坦克移动 5 ~2 M% c- r; F- i7 E& X; U8 l
--3.3.边界限定,防止坦克移动到视野外 + T% k% a. D2 J
8 w0 [% l, c2 {8 v) O
/ y2 W* O1 M, ?( z/ H: c( G
4.添加可以360度旋转的炮筒
+ ~/ r; x; W5 K1 W2 y* j" T--4.1工具类 # b2 i6 X8 \. h' R3 M @! {9 m7 \" v
--4.2加入资源(红蓝炮筒)
: E, O" C, Y9 ]0 N! k5 L--4.3指定方向画出炮筒 6 H F6 C3 b: f# R; u* e
--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 4 F5 ~. T2 j/ ~1 X3 c
$ \: E! ~ O( o
7 b2 p6 Y: Y# v' S& i5.让坦克可以打出子弹
' q* z6 e5 J1 Y6 m6 O1 N--5.1 新建子弹类
% _! r6 y+ m" v( ?--5.2 把子弹加入到游戏架构中 / I- g `$ X( G' W# S/ l$ a
--5.3 画出子弹 6 G- J# y$ A1 l* H5 I; f& Z4 b* a
--5.4 attack - O( o) r. p6 ]' a) |
9 [! J3 `5 R- K# {4 @! v
9 A% h F* f3 {# l6.解决前面问题,调整优化 0 P5 ]5 i5 [7 D5 s7 m
--6.1 将点系统数据换成double类型
( }$ J% w+ V1 w4 r--6.2 调整坦克的目标点位置在鼠标头部
" y" f8 H' v4 M) I9 R' w, r4 R--6.3 把鼠标监听mouseClick改为mousePressed : _: p* M0 r- n1 ?
--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系; & D" o( g% q' L- J- Y3 X
--6.5 子弹从炮口发出
; y( k+ p+ M; i$ _0 \2 P, L. \2 N [# w8 T; o1 K; {6 g
$ ^% N Q8 I) D5 l+ L4 F- D( Q
7.一大波机器人正在靠近
5 _$ _% L5 k- y$ T& t" Q6 c& }--7.1 分队伍,变颜色 4 g; N$ }. ]* }. V
--7.2 创建Robot类继承Tank " v1 A$ s S$ Z
--7.3 简单AI让Robot动起来 ) F# |( k2 Z: L& }6 H
--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化)
) b W6 D9 y, r5 p' a--7.5 让Robot随机指定目标点
) l( _9 z4 G& ?( w6 J" _--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中)
B" u, Q, N; a; ]4 X9 o9 G& {
o0 A$ T; ]) d1 _
5 u& c3 s3 E& o/ V8.游戏数据的管理与维护
. ]5 l. a/ k4 J1 Q; W" B--8.1 工厂模式创建对象 % q: |+ E/ W/ U9 R" r: I
--8.2 移除游戏数据的方法
' c- L% K% ]) B5 u2 k
+ A! {: e( j; e5 R3 g( o8 }( q
$ V, ~- u1 M6 @3 D; c9.这子弹是真的 " ?4 ~* {# o! U) N3 b- m
--9.1 在子弹移动过程中遍历所有坦克计算距离 " j3 @1 c! \5 U& m6 E
--9.2 让子弹不伤害自己和队友
H* @# w) ~/ ~% ]6 M) _--9.3 给坦克加上攻击力和生命值
+ Z% x2 A2 Y. ~) I--9.4 绘制血条
8 G9 W, c0 ?; ]( U& {$ Z% ], L3 j" Q- m& w
% B- }; q8 z/ [ t9 ~: l
10.特效
9 G. I( V6 d* a5 H. v--10.1 加载素材
r. m* r7 O8 L--10.2 编写Effect类,加入到游戏架构中 3 H B+ u) w6 J5 y5 w8 r+ q# g7 p
--10.3 实现多种特效,添加特效播放速度 9 a& l9 v2 y$ ]: T2 }" G: R
--10.4 特效播放次数 / {' |$ J N4 R! d/ Q
--10.5 特效跟随
0 ^8 k& Q b; R i$ W
6 F! P0 b, J9 S0 p( Z0 u" i
8 E3 p8 {% [7 w( \密码:( A& P6 t8 e, t" }
|
|