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/特效。, Z K8 C. [* F" d$ N& w
3 B* | }4 b" n k* G
( S2 {2 e" p5 |
: p [8 l' R9 t/ p+ P3 r& `5 y- I
8 B" M2 J: ]9 [! t! Z/ P) W/ a; ~( P
项目说明:
- h- W) B6 A" m L% h8 k0 t1.程序结构分析: * l: w5 A4 X/ x. ?) a3 h
--1.1 窗体: 顶层容器,用来显示画板等UI组件
5 }* V0 {) R. v' x; h* ^--1.2 画板: 取出游戏数据进行绘制 5 z: r- x2 v5 }% A
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问
8 N3 V1 @/ ?: @--1.4 数据管理: 要求游戏中任何地方可以直接获取数据 & Z2 T/ w% M8 d: N1 r1 H% f Q
--1.5 中心计时器: 让画板反复绘制
4 b( ^8 [0 `. Z4 [& O; q2 y P" Q" E, u2 H3 D& m& ]
- U7 v1 z R: y. a) S( _5 v2.基础结构编写 # r- V9 D0 W* \" P
窗体:GameFrame extends JFrame
( `2 K. \- ^# S9 S画板:GamePanel extends JPanel 1 {0 Q+ J* ~* G, t W0 q& f+ u) z7 z
资源管理:Res # w, C4 v. W: h/ |, ^. V8 i
数据管理:Data
9 w( x/ q/ i# I5 c$ B/ K6 H中心计时器:Timer extends Thread
0 ?* L w( n( @* [" l3 [: k/ B
p8 e6 P4 U2 R+ ]' x" _& h6 S( B$ h7 j% @$ ?9 }$ T
3.让坦克动起来 * p( ^; l3 y, P% d$ s1 R
--3.1.在Tank中添加move方法,在画板重绘时调用
" E: ~; D# W& d/ n--3.2.在窗体中加键盘监听,控制玩家坦克移动
1 @# Q4 L" X2 X2 `--3.3.边界限定,防止坦克移动到视野外
' p( _. n/ \0 i/ T5 Q1 Y9 T$ ?2 W% ?; D, X" b# _' x
3 {2 B0 G2 I. ]3 K
4.添加可以360度旋转的炮筒 3 Y& d2 G3 {6 A i3 L' i- {
--4.1工具类 - Z1 E8 r% K4 @& |
--4.2加入资源(红蓝炮筒)
: i) f& h M7 ^2 D+ I8 g/ \# [/ x* D' g--4.3指定方向画出炮筒
0 ^4 D+ v0 Q4 p' G; E, ?0 B4 Z& m/ K--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 ( X% O, Q8 @8 H1 n& _# M7 O
- J. o4 E! x. o5 c: D4 ~3 Z2 R
" o. W" Q. z5 O4 D
5.让坦克可以打出子弹
$ I& F* }/ {' I& S* w. f# b--5.1 新建子弹类 ( \8 B; }0 |+ f2 r, A7 j* q/ q
--5.2 把子弹加入到游戏架构中
C9 U+ P; ]- V6 r4 [4 W--5.3 画出子弹
7 t$ Q) f. n1 y1 S2 R" B--5.4 attack & X9 ?: K- r* M) x6 D
\4 b: d+ y, @+ G! t2 I+ |
/ k/ \5 T- U+ w: i* S/ ^/ @
6.解决前面问题,调整优化
+ Y- v0 D( B; F- V% w9 L: x! M& J ^2 q--6.1 将点系统数据换成double类型
( N7 g7 i4 R$ z6 r, C--6.2 调整坦克的目标点位置在鼠标头部 % A" P: e+ V* ]2 m" m2 A8 |
--6.3 把鼠标监听mouseClick改为mousePressed 9 @8 B! p6 D3 M. e' _5 R1 l4 l
--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系;
: E! G) P2 {6 c--6.5 子弹从炮口发出 2 ^- L) ]1 K- K+ l& p. G
* W' e5 D0 o( Q* h# T: Y
2 B5 ?( ]1 J8 c: I& `7.一大波机器人正在靠近 & J. G1 G# g5 T( R: ~
--7.1 分队伍,变颜色 7 F+ F* ? b) {; A: w9 p& D
--7.2 创建Robot类继承Tank
& s2 o: f9 J) w _( c! \--7.3 简单AI让Robot动起来 9 H6 a& d) ^0 _# w5 e2 O& Q
--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化) ' \! |; o' e% O1 G; u9 i2 z6 E5 e/ e
--7.5 让Robot随机指定目标点
) t; l8 P3 Z+ m5 ~' Z( `3 C7 ?& Y5 p--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中) * k6 G$ F1 ]0 u
8 [8 G0 T$ {8 q/ J' R' u! n1 x$ m: b: x5 Q# ]& R4 F# b% X5 I. u+ [
8.游戏数据的管理与维护
/ o" P/ n5 E' f2 q+ J6 n" c--8.1 工厂模式创建对象 3 d$ z$ ] J, b+ N! n
--8.2 移除游戏数据的方法 6 @& S$ h; ` k4 n* x
/ ?) G2 r9 e+ F3 z9 f$ T9 p4 Q
- `7 L8 n# e% L9.这子弹是真的
$ P. y& x1 x- u+ f4 e--9.1 在子弹移动过程中遍历所有坦克计算距离
1 N) Z1 E/ q3 `' k/ \--9.2 让子弹不伤害自己和队友
: a2 ~; C8 b( K, T, ^' t--9.3 给坦克加上攻击力和生命值 / H8 y6 A5 V) W g/ G q8 G2 b
--9.4 绘制血条 $ d* J9 B* H! `' J0 A4 \! K
& X' p b b4 @% C: R
$ |$ `3 d+ q* w6 {) K( R, N8 l/ h10.特效 ( J0 C2 M6 D% M2 D7 Z7 |
--10.1 加载素材 5 g8 E" z; D1 G$ ]: x& E8 {; g
--10.2 编写Effect类,加入到游戏架构中
7 I; H3 I5 J* c z+ n) F4 |--10.3 实现多种特效,添加特效播放速度
( ^1 {/ v% ?" d) _--10.4 特效播放次数
/ u/ D( V; d$ ]0 W8 z--10.5 特效跟随
# X% U n$ R: ~0 O3 _3 u4 y* O! E8 Y, G) u* P' `+ N8 V+ w
+ m2 ?- G% r& a& u" o
密码:! @/ _9 F/ M0 [9 }
|
|