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 D1 b& \; e! M( Z( U, E4 Z
O( z3 Y6 q" V: ]$ o3 `" l
$ W- i$ c7 ^3 c$ s5 _ M# T$ M+ b* N7 A6 |$ l( l! s( q
6 j- n1 \0 W N) u' s/ ?) K4 D8 g
) G) ^* F h& c, i8 p8 t$ H1 w; u项目说明:
" U1 q" s' K' _' z1.程序结构分析: 9 u; p% V& q @+ ]; j& p- K
--1.1 窗体: 顶层容器,用来显示画板等UI组件
. E& ~* F% ~; q1 P' |--1.2 画板: 取出游戏数据进行绘制 8 L! H4 u) c5 d6 r0 u2 S
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问
, L$ y0 `6 ~1 J9 m+ E--1.4 数据管理: 要求游戏中任何地方可以直接获取数据
3 p7 b) d* X; P3 u--1.5 中心计时器: 让画板反复绘制
( a2 V5 y8 J8 b! t# r% Q6 H: c
* r- _& f0 \) c5 K; n$ D& Q
& B5 @/ t) E! f# r5 R" `. w2.基础结构编写
* f/ V$ P2 J. N. F. A窗体:GameFrame extends JFrame 9 U9 J- ]; D7 t7 l
画板:GamePanel extends JPanel 3 y S! {9 h9 T: g; A& s
资源管理:Res : F; t/ K& u9 K% u: j0 G5 q
数据管理:Data
7 i& x- ^# X' q' l中心计时器:Timer extends Thread
$ ?* K0 U% j. {5 [+ H2 j D1 S: g* v4 m
1 T y& ]9 g* @1 J+ ?( @) O
3.让坦克动起来 & `5 @$ }) N. e& W1 w6 _
--3.1.在Tank中添加move方法,在画板重绘时调用
8 y7 u4 @) c5 R! F# I3 E--3.2.在窗体中加键盘监听,控制玩家坦克移动
1 T% {7 C& I4 e) O" V--3.3.边界限定,防止坦克移动到视野外
9 `% N: e, D3 X3 c* p8 |; g* ~" |! |* b9 N
) l4 u5 W. h4 C( ^+ A1 r4.添加可以360度旋转的炮筒 5 {) k$ f/ A8 G; [1 m
--4.1工具类
& x+ P/ r5 r% u* o--4.2加入资源(红蓝炮筒) # R# G( }: }4 p) s. N+ B
--4.3指定方向画出炮筒 1 G& U1 I l* \* D4 n! F# m: |8 } V
--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 3 f5 [/ B1 X% |3 v/ d1 k! S: e
6 U3 h" C, A) h! G8 s7 c
8 R ~: I) L" F4 l5.让坦克可以打出子弹
" X) x# ^/ T1 s6 Z--5.1 新建子弹类 7 N9 b+ j; H0 a4 a3 U
--5.2 把子弹加入到游戏架构中
# \! y1 x; v1 F--5.3 画出子弹 ) t- r4 @4 h6 m+ e) w& }9 a
--5.4 attack 1 K4 M/ R" B7 w* F) L( P
( U4 G, \; H7 U# ^$ d7 j( F8 Z
! E6 y# J i! ^* D6.解决前面问题,调整优化
9 `$ X: l- z9 n--6.1 将点系统数据换成double类型
, r: z$ X* O+ j5 j1 u6 `) i( u--6.2 调整坦克的目标点位置在鼠标头部
& W3 w( H; o1 b! F--6.3 把鼠标监听mouseClick改为mousePressed
- Y) t/ d" L# M3 l--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系; & q' G# j* N. }2 o9 ~7 F
--6.5 子弹从炮口发出
6 K4 e: \- W/ I1 V/ U3 H: x
* q! V8 `! F/ T1 r& S( G
B. @) V, f7 O4 w: k/ M# \; n7.一大波机器人正在靠近 4 ]2 {7 b z+ o" N) h' I
--7.1 分队伍,变颜色 0 `, x/ O+ w7 m$ X$ b2 S
--7.2 创建Robot类继承Tank T# I, z$ d! n# K6 c
--7.3 简单AI让Robot动起来
8 h0 J: q+ M, s# S--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化) / A3 k5 j5 Q# y5 L, C& d+ A
--7.5 让Robot随机指定目标点 $ X! \5 Y0 S9 [+ Y
--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中)
$ v# e, w3 w5 `, E# H, U. C" Y
+ X: s% |& _( X% V$ r
9 G, I* `2 k$ }% M3 F1 U6 v8.游戏数据的管理与维护 * ~8 s) ?# t f- Q5 {
--8.1 工厂模式创建对象 8 K" P0 n4 ? h, `1 q8 M4 A
--8.2 移除游戏数据的方法
( L; S5 X6 Z6 m0 l4 T* C5 E
5 \) T2 F; v5 V
2 ~) }2 ?+ b; ]1 g; p$ S9 E" W9.这子弹是真的
) x& x6 H; T) N8 V! E4 d--9.1 在子弹移动过程中遍历所有坦克计算距离
- r; w& u1 ^ B" |--9.2 让子弹不伤害自己和队友 + B) @+ \5 V6 A% c- l
--9.3 给坦克加上攻击力和生命值
3 j/ D4 K$ }+ o/ F1 q" k; O5 w--9.4 绘制血条 ' {1 N& O6 a+ W0 F6 z; ]- Q* e" n4 J
0 N! e4 k" Z% M& _9 c5 N. S* {
" a2 Y/ m# Z( f0 g$ Y8 s4 N
10.特效
8 Y) v. A0 y9 T- |--10.1 加载素材 {2 W& ?: c! Z+ a0 Z7 A1 `# d
--10.2 编写Effect类,加入到游戏架构中 5 R' v/ o6 H7 t3 N- c6 Y
--10.3 实现多种特效,添加特效播放速度
' e3 r# j- D7 V& o--10.4 特效播放次数
& o [/ A0 ]) R--10.5 特效跟随
c7 X, i( M1 c7 O3 r
' {; C/ v+ ^. b5 v9 S2 @; d) U
) ~- T$ ~- s. j: B密码:
! r; x3 b7 O/ @# ^! _9 C5 v |
|