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/特效。# y" d/ W9 V5 P# q9 P$ H$ y5 B
K& s4 G5 K- h2 e' a+ Z2 M$ \
! F# ~( ~' Y( @$ _& m5 P! X V: L+ w, x# `! I3 I& ~7 _% ~( s
0 u H$ q1 t; i- b1 s+ Y! s3 h8 B
& T, k2 c, H, O2 W" ]
项目说明:
8 H, e b$ S$ D4 d. S1.程序结构分析:
" l+ m l, m0 ~0 I--1.1 窗体: 顶层容器,用来显示画板等UI组件 2 r8 N; n5 I9 b! h; u. d7 R r
--1.2 画板: 取出游戏数据进行绘制 ; h7 b- h o$ ~1 T0 C: ^
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问 5 B4 ?7 K- d9 G' a8 c
--1.4 数据管理: 要求游戏中任何地方可以直接获取数据 - A3 x& M7 U) F9 |/ B! M- s; f/ W
--1.5 中心计时器: 让画板反复绘制 2 w/ i: O- H j+ ^* ]8 L; L7 D
3 k1 }! j# ^. J# u$ F8 P: x) i. i5 v& @& M) P
2.基础结构编写 8 ~6 ], y& Q, S0 F
窗体:GameFrame extends JFrame . M& y/ C6 @, H" Q) `5 \3 W
画板:GamePanel extends JPanel
# h' p$ B' v: Y3 G& P资源管理:Res
0 T/ G* k" s. j! B, U6 j8 U数据管理:Data
1 B/ h! t2 m: o8 ?中心计时器:Timer extends Thread
$ o* A8 a1 g; C+ d6 i
3 v% S8 a7 v" W- ]+ r: k; r
' V: X$ H& @+ s9 E: a+ V( H6 s3.让坦克动起来
2 T5 Q9 _2 m6 o9 E--3.1.在Tank中添加move方法,在画板重绘时调用 1 d, r0 ]; A7 b7 k: H
--3.2.在窗体中加键盘监听,控制玩家坦克移动 4 W& J: [- V- g
--3.3.边界限定,防止坦克移动到视野外 , _: O# ], w: e: c) V5 b% S$ ?
) R4 I- y4 l/ _! T
6 k; T2 X" B; N% C/ d4 ]& K
4.添加可以360度旋转的炮筒
* f1 d* {4 b8 H7 L--4.1工具类
: b! O/ |2 F% @, ~) Y: V# z6 f--4.2加入资源(红蓝炮筒) " B& _! {0 t+ \& o, z6 v
--4.3指定方向画出炮筒
4 d' M! n4 R) z: f# `5 B) h% }+ m) F+ o--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 ) Z0 ]' L+ f( W# J4 P" F1 O6 p9 x
% G) }( c7 w% M2 F& h, k2 X2 v d( j8 j# B! ~. X8 Q3 M
5.让坦克可以打出子弹 . T5 g, U' w' S% H/ l
--5.1 新建子弹类 7 S/ Q0 D4 C( S( n L
--5.2 把子弹加入到游戏架构中
: A6 g2 X8 }9 `" t--5.3 画出子弹
* d: V) v/ a) x8 Y1 c! B$ M0 Q& N--5.4 attack " W. y7 d4 s2 P
+ k* C8 W9 R' I0 [) x2 G
D6 K2 i7 A0 g+ k6.解决前面问题,调整优化
4 q( h$ a# E, }+ g1 j6 X# Y--6.1 将点系统数据换成double类型 , b2 H* E- \/ p4 c6 L% s6 t' t# m
--6.2 调整坦克的目标点位置在鼠标头部 ) ^0 P, B2 n7 v# g' ~3 p: M9 E
--6.3 把鼠标监听mouseClick改为mousePressed
1 I G b/ a3 k% Y7 _$ @--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系;
* m% q' J* G2 E8 d( j6 I--6.5 子弹从炮口发出
8 H3 j r+ s3 ^# u1 o# c
8 m8 ^. [6 W) V2 b ?5 C
6 D7 y' J7 O" g: s% @' y7.一大波机器人正在靠近
+ T/ G& l- e" B, I% D3 Y--7.1 分队伍,变颜色
' }4 y# ~* f6 S--7.2 创建Robot类继承Tank
6 d' l K) M# g p' i% w--7.3 简单AI让Robot动起来 5 o$ {4 s! q8 q/ }' _ K
--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化) % Z/ ~/ `0 s6 ~6 L9 Y, Q
--7.5 让Robot随机指定目标点
; y% o H ~' t i; ^9 B; W, I--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中)
8 F( f3 G8 ^ Y) u2 X
: B$ g+ w. ~4 I( [ N
9 p" ]9 G. j/ B6 L% z: q$ `& u8.游戏数据的管理与维护
. \% Y' r' v5 ^4 X8 ?: q--8.1 工厂模式创建对象 2 p" U# ^3 ]6 o0 \) x
--8.2 移除游戏数据的方法 ' r4 o1 v+ b, p) y9 S* K' t
2 q& _ m: B0 t p) b# m
8 Z9 R4 F X8 s2 D
9.这子弹是真的 ! k& k* D. w( u+ D$ Q |2 F
--9.1 在子弹移动过程中遍历所有坦克计算距离 2 a. f9 T* l, E" S; x- E+ n
--9.2 让子弹不伤害自己和队友 2 D% X) ], @, X% b; h
--9.3 给坦克加上攻击力和生命值 # C& K0 ]1 m0 T8 h: m2 E
--9.4 绘制血条 & j0 T3 B& [# S3 \! ^7 s
5 Z. h0 Y+ R# o- D x0 D9 V
' M- q `) n- e% r10.特效
1 k! p$ y# @2 Q1 I" l--10.1 加载素材
' P. w! ~. N6 B( a7 |- O6 Z--10.2 编写Effect类,加入到游戏架构中 - r0 R0 K& r4 u" x; l' k
--10.3 实现多种特效,添加特效播放速度 - B0 O, z0 \) W2 I5 \. D, W
--10.4 特效播放次数 4 w" {) [2 a+ s2 t
--10.5 特效跟随
) B+ ]' _4 j0 f% m4 Y+ x; ?
: i2 J% i; `+ a( X' ]& D1 t) b$ f* n3 L# D5 z& B( K! D2 R E
密码:1 W" v9 T, ^5 p
|
|