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/特效。
/ `1 d+ ]5 c" f+ w
# g2 _( x! k& Y
* n1 j. M9 o8 J5 f: C
7 n3 a: N9 ~: n/ K0 Z! v- }3 ]
% I- ?+ _6 }$ ^
1 \+ R% U3 y% k* q项目说明:; s- h( X. L: X4 z" k# ?$ l
1.程序结构分析: 0 M2 e) ~$ n6 x0 a
--1.1 窗体: 顶层容器,用来显示画板等UI组件
, f% ~2 ?6 U0 r/ h--1.2 画板: 取出游戏数据进行绘制 7 s# ]1 F7 [2 V* G
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问 + h8 i5 M1 P( c0 H& J4 S. k- n
--1.4 数据管理: 要求游戏中任何地方可以直接获取数据
) h3 ]9 G" \- {" G3 p--1.5 中心计时器: 让画板反复绘制 N( @4 S* d; ~- G0 @: k& ^/ e5 ]1 U+ T
6 C. s3 |- j) }6 j
3 a# f6 u+ W3 A4 J, W8 l2 J
2.基础结构编写
% L! \' q- I6 o# r; m5 _窗体:GameFrame extends JFrame 4 v: V1 K# P; z7 d. u" n
画板:GamePanel extends JPanel
0 K$ p6 @# j1 v" M0 {/ n6 g) V S( k资源管理:Res
1 `) P9 B& ~. z H数据管理:Data + @: v. i5 {+ C1 }% D6 U
中心计时器:Timer extends Thread
; \! D/ M; D* @: z1 e6 g& H/ u
/ t5 D5 x2 d" t z% _ m! Y' \- g. A2 _" j+ O( Y$ V
3.让坦克动起来 / D8 a$ ]0 u0 Y( t; \' W+ F+ y
--3.1.在Tank中添加move方法,在画板重绘时调用 & H1 q8 p4 \! ]6 \! k
--3.2.在窗体中加键盘监听,控制玩家坦克移动
* ~' g$ a" e7 ~0 M* I& Y--3.3.边界限定,防止坦克移动到视野外 ! L* [, q. F1 l ^8 ]
$ [* \* j3 O9 }( z) \; B ~% T; `, n9 w
4.添加可以360度旋转的炮筒
( L2 v2 c. `$ v% ]1 D# \" {! g" M--4.1工具类
' [' c; T1 Q, ~: L/ Q--4.2加入资源(红蓝炮筒)
- X8 I* b$ }; n' k--4.3指定方向画出炮筒
! U7 I- G3 l+ F* A. }--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 ) h; X# l4 t, D* U' J
& }* j! H( e8 {% i7 c( P7 m
( G! |7 Z/ r& \2 v' t: a5.让坦克可以打出子弹
7 m0 m" x/ `8 ^7 G7 v, W, e--5.1 新建子弹类 . E$ B8 {- O. x" P: k8 o' _2 t
--5.2 把子弹加入到游戏架构中 ) B! n% E- h) A2 j8 [2 |3 ]
--5.3 画出子弹
) v) N7 Q3 @. v6 ]: a+ r! f--5.4 attack
% }* N, t( s8 `+ m* L2 s" Z+ T+ S! S* ~* I3 n2 {& q, L, q# d
X0 h8 b' F' z6.解决前面问题,调整优化
/ |, u# i( R' k; t/ }/ h+ m--6.1 将点系统数据换成double类型
! ^2 ^6 } ]/ r% N) |: p--6.2 调整坦克的目标点位置在鼠标头部 ' |' m/ [5 N9 e$ U9 P$ s
--6.3 把鼠标监听mouseClick改为mousePressed
[3 E: t$ v! O7 Z5 w' K$ A0 l: R--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系;
& E+ Y% I9 q3 S--6.5 子弹从炮口发出
- ^6 Z$ `! \/ F! Y6 N) L( Z9 p, d% V' f% Y F9 T
* B' f2 G6 A" `% o+ @3 p, W
7.一大波机器人正在靠近 6 J+ J, B7 h8 M( W0 Q2 t/ c
--7.1 分队伍,变颜色 / x) D5 B4 g2 m+ y0 x1 x* W+ q) [2 A
--7.2 创建Robot类继承Tank 9 _4 b7 q2 K/ E
--7.3 简单AI让Robot动起来
7 _ W' `0 ^/ ~. [$ u( ~--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化) ^1 }' W' k; c) d( [6 q
--7.5 让Robot随机指定目标点
# v6 ?2 R. D) ~' A9 k--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中)
% F. n) P$ S* V2 z1 ]) g/ h. p; W, r- k/ ~
3 }, ]+ n9 \( T# e) t- P- p# D7 O) w8.游戏数据的管理与维护
\) r) E1 |7 k( ]" V--8.1 工厂模式创建对象
) F. G' F9 X* ~, ^# B" J--8.2 移除游戏数据的方法
* U" @) ]! {5 _7 s, o, G2 I# w, T
+ [9 R4 z% G1 _, @* o" X- M
9.这子弹是真的
0 u8 y, g8 p7 V- X--9.1 在子弹移动过程中遍历所有坦克计算距离
- \; o& P" Y3 ~5 U--9.2 让子弹不伤害自己和队友 - C' S) T4 ]; ]
--9.3 给坦克加上攻击力和生命值 7 S5 b$ g+ q3 V A, i+ q* g
--9.4 绘制血条
! p0 \% _6 s) N! B. |+ n
% @, ~8 M& c( |/ _8 g
4 e+ s8 t3 W& h& D( V) G8 q* ?- g10.特效
5 L0 [/ r% J/ F% }- P--10.1 加载素材
s" M4 q. P Z6 r- B! p# M--10.2 编写Effect类,加入到游戏架构中
+ g* |, B' J! l/ [+ e6 L6 d0 E--10.3 实现多种特效,添加特效播放速度
" ^% ]7 |1 w3 p--10.4 特效播放次数
* l8 [3 v7 n7 \--10.5 特效跟随 # o, e* o, y- {9 j$ c
' p- m7 o8 E, N% b
' R/ ?6 o, K) b: I4 L, N密码:! t3 ]0 y6 c7 p8 ^
|
|