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/特效。7 C" _& M, B. R; ]
! w. t1 F8 Y9 _+ W' m# Z4 o) M4 b$ V8 O0 y7 w' f% e4 E5 B
, g1 M, e* a8 ?7 t! L) x
$ }1 A8 |7 u. M
- T0 D; D0 U s$ i* d7 ^. j
项目说明:4 ~1 j, b! ]) x4 @, R; `/ G' L3 c
1.程序结构分析:
% Z2 f& A% t. [1 [- K( m, s- B6 F--1.1 窗体: 顶层容器,用来显示画板等UI组件
" `# v$ m4 y U/ D& X--1.2 画板: 取出游戏数据进行绘制 - m6 a$ R8 C0 P5 V3 q9 A4 x% w
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问 4 A0 u2 }/ n) k" P
--1.4 数据管理: 要求游戏中任何地方可以直接获取数据
" V2 B( a& I D2 u) m0 B--1.5 中心计时器: 让画板反复绘制
0 {( i' U* E( k8 x! m9 G5 U4 {1 T9 k1 o4 V" `! ^" {8 ~
) B* U' J( }) v2.基础结构编写 : x, |: F: V3 J* m8 }0 o) y* Z
窗体:GameFrame extends JFrame
, G! _' p5 @! @ L画板:GamePanel extends JPanel 1 x$ ^( M( N. i: z
资源管理:Res / L. S( J1 t/ T1 Q/ B
数据管理:Data + E. E# i6 U9 F. E+ G# K+ s/ ?
中心计时器:Timer extends Thread
0 Y- [$ E; H+ ^* T7 o% [7 V/ \2 P5 w, j; z5 \8 T0 |
( A; {5 Q! l! h/ N6 R2 q3.让坦克动起来 9 I% d7 ]$ H* r$ h& E( F1 c
--3.1.在Tank中添加move方法,在画板重绘时调用 3 h! S, l. J2 V5 d
--3.2.在窗体中加键盘监听,控制玩家坦克移动
5 R1 r* l9 {4 x5 @' Q. E E--3.3.边界限定,防止坦克移动到视野外
+ M- e+ [3 F) f
7 x$ w' `/ H' y( X+ I: L1 g
/ G9 }( g+ Z6 h/ d4.添加可以360度旋转的炮筒
* T4 ^& q, A" L: X- l' {--4.1工具类
0 u9 U d, J0 g" E3 {--4.2加入资源(红蓝炮筒)
7 ^0 D- Z, E2 n: k9 w: W9 }* B1 X--4.3指定方向画出炮筒 , }! T n1 w4 u( [0 i ?- P
--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点
& @4 `- {! _0 X; E
; r- {' u# t' ~
/ b+ J9 _# S X- G; [/ m2 x! S5.让坦克可以打出子弹 ) S8 R, ?5 L5 d+ N
--5.1 新建子弹类 4 j$ t2 a3 I/ b/ `- ]1 s% S- {, H
--5.2 把子弹加入到游戏架构中 - R2 f, a( E$ ^3 q. X- \
--5.3 画出子弹 - z" `% D* }& k8 z4 |
--5.4 attack
" x" m+ k3 R4 B0 j b% q0 ~3 w) f+ k9 R% i& A
! p; e' U& Y( R% \+ F" S( f5 _9 n
6.解决前面问题,调整优化 8 ?- E+ t' C$ P" v
--6.1 将点系统数据换成double类型 w0 D9 X5 z* ~" h5 _" l t
--6.2 调整坦克的目标点位置在鼠标头部
# t3 e6 b) ?5 n) E7 {4 f7 B--6.3 把鼠标监听mouseClick改为mousePressed : d7 _* z6 [4 c4 ]
--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系;
# |9 e7 P* B. {& _8 |8 a. i--6.5 子弹从炮口发出 " S; O4 y% X8 r J: K8 f+ z' c& m
( e* n- v, | Y. v
6 M# p1 v8 g+ D/ E7.一大波机器人正在靠近 : R% b; ^" |# q2 S( j" |; H
--7.1 分队伍,变颜色 * j* ~' C/ @: }% ]3 r
--7.2 创建Robot类继承Tank
* x4 a$ T4 F6 d' D3 K& T$ |, p4 w--7.3 简单AI让Robot动起来
8 l+ g! ^% H5 U- M$ q) d--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化) $ M/ A7 i& K- Y
--7.5 让Robot随机指定目标点
( y" s2 V1 b" d--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中) " g e+ r# F8 ?9 R8 ]
/ B, E* Z& p+ T2 k6 x
% i4 f* R0 l5 n6 ~ q/ R8.游戏数据的管理与维护
; k1 s: x& v5 T, M* |--8.1 工厂模式创建对象
. F3 x9 V3 v) f) l8 C$ k: G* m--8.2 移除游戏数据的方法 3 }/ }1 h+ F X6 ]. Y. v" b1 i$ U0 t
6 s. p! d4 e' a
% g% U; ]8 A% n3 s: z6 c- Y9.这子弹是真的 4 c' K+ V$ B& p- @3 u; ]4 u. c
--9.1 在子弹移动过程中遍历所有坦克计算距离 7 @! r: t! a' T3 N
--9.2 让子弹不伤害自己和队友 U* }4 {. ]8 x8 ]0 s6 N
--9.3 给坦克加上攻击力和生命值 8 \/ {* J4 k; ?5 u2 R1 Z5 C
--9.4 绘制血条 , y$ Y0 s! ]3 v; j Z& ]1 O
1 }4 G) d ~" A- A% G
2 \9 x+ s& c8 l/ }( O
10.特效
. v. r) C2 c c3 k--10.1 加载素材
" Q; J& K( R3 j+ t- m--10.2 编写Effect类,加入到游戏架构中
3 W; z6 s/ ~6 j: E--10.3 实现多种特效,添加特效播放速度 7 P u+ F$ T% p- A; l" s2 s
--10.4 特效播放次数 * G; U- \- Z) T4 E6 b$ q/ z$ X
--10.5 特效跟随 * Q" y' N9 o& s
5 U3 f6 X( l# E
( c$ U4 f7 \$ n7 v8 A2 k/ i密码:
3 @" w3 a) ~6 c* S$ W' { {) q |
|