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/特效。5 B3 M! M' o9 M3 k1 v
. U0 y4 j7 E2 w- }5 M6 r
% n( C9 J+ S9 G/ T- H+ W; b9 d/ v
* V7 [' c; M0 u% M% Q8 ~; P
: m' {- X: k+ ?- g
+ y- [, U! B! f7 W& ~项目说明:+ { L$ H, B j% N/ ?
1.程序结构分析:
; Y5 c' U8 k" m6 q# m: c3 K5 q--1.1 窗体: 顶层容器,用来显示画板等UI组件
1 @1 _- R G9 U--1.2 画板: 取出游戏数据进行绘制
8 `; D; Q% ^, w) g' X- P+ S$ `--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问
) F4 Q! Q1 N6 T7 v! p# r9 g* V--1.4 数据管理: 要求游戏中任何地方可以直接获取数据 2 c0 L' p" Y3 J$ t0 Z! m' N
--1.5 中心计时器: 让画板反复绘制 4 f$ E5 M7 ]# S+ W1 ^3 v5 V
$ O" G* r7 |7 Z$ |0 C1 Q; i- u
, e% ~4 C( k! E. G, _* Q: _$ \' L4 j2.基础结构编写
6 B: ]1 ]- V- G% w# K4 R2 o窗体:GameFrame extends JFrame
5 H4 o! {3 k- Y8 c+ j* f- l" p画板:GamePanel extends JPanel * Z, ]5 l& |# B3 I
资源管理:Res ' @+ N% K4 q7 n$ l( F. _- F) q
数据管理:Data / c. p- b" P9 K, J3 v8 v
中心计时器:Timer extends Thread
/ Y8 |1 ?! c8 g0 Q$ e3 m# L* W% E1 p, L% j
. R& J. _% V" m. n2 Q; E5 ~! V3.让坦克动起来
$ T' ]2 h* h3 C R& ?8 P7 `--3.1.在Tank中添加move方法,在画板重绘时调用
* @, P+ F0 f# U. P/ j$ C" Z--3.2.在窗体中加键盘监听,控制玩家坦克移动 6 a5 T W, j) q
--3.3.边界限定,防止坦克移动到视野外 ! l* s: T( }: Z' F" D$ i
) U& r: b: c4 l( p
) u& v, W' { r% _! C4.添加可以360度旋转的炮筒 : c0 \9 O3 I5 ]. \, l' `3 p
--4.1工具类
- P4 ~8 A' L, l4 O--4.2加入资源(红蓝炮筒) ' v$ s5 _. f( y, B1 u' L! E. e& R
--4.3指定方向画出炮筒
1 g4 @6 R& X/ v--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点
5 I: }& b/ b6 e
2 Z5 C* }8 C- ]. p( ^
) Z S( g& j+ o& }& R5.让坦克可以打出子弹 ( V8 e7 J% _0 v7 R9 ?: o( P1 \
--5.1 新建子弹类
/ S3 l( f, I. v) Q2 H$ G: Q2 b--5.2 把子弹加入到游戏架构中
2 M! R% l; U/ e4 a' t' T8 K--5.3 画出子弹 4 l0 @6 G, e, L' j' ]# Y* {
--5.4 attack $ \9 Y* }( D/ O% o0 E5 t
+ [( x8 n" j& ~9 p6 i- ?' o0 ^# C2 K2 g" X8 _9 V6 \
6.解决前面问题,调整优化 6 [$ B' z2 q5 \9 r. K c ]% D
--6.1 将点系统数据换成double类型 , x1 p8 ~' m0 a" x* F# H% X! F
--6.2 调整坦克的目标点位置在鼠标头部 7 i- P; A& f9 x8 t. ^
--6.3 把鼠标监听mouseClick改为mousePressed
1 A/ m8 E M9 X" M2 E8 S# ^--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系; 4 ~ c5 \; \$ m, h
--6.5 子弹从炮口发出 6 ~9 J: \* R( h' |% F1 S% Q# `
" c+ a) n4 F' r( r& T+ ?& h0 U, K$ i4 n( [$ I8 P3 G( j# C
7.一大波机器人正在靠近 ' A( Z, ]* y9 c
--7.1 分队伍,变颜色 * Q4 Y4 k9 I1 Q9 x8 Y
--7.2 创建Robot类继承Tank * }4 C5 P) d$ F, p, ^. a; Y
--7.3 简单AI让Robot动起来
U% S0 m$ T+ m# c; T G--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化) 6 b# C! a( V8 }+ p C
--7.5 让Robot随机指定目标点 / y- k4 b' C0 ?# ]' t* B
--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中) 2 h. z! m0 ~9 I. k0 {
8 w- i0 h; \1 P
+ F8 l' l4 ]0 ~/ N2 O8 w" R8.游戏数据的管理与维护 ' z# ~" M- C. {/ U- H
--8.1 工厂模式创建对象 7 Y; Q# g/ y4 c4 S8 Y# `/ H
--8.2 移除游戏数据的方法 3 B7 G9 z' ]4 b! q" ?
9 A0 G' C) Y5 l V
/ l4 @( {% U0 a! x
9.这子弹是真的
' A/ G5 z! f* p) ~' I. C j; s+ I. i--9.1 在子弹移动过程中遍历所有坦克计算距离
- c5 B$ u. \5 l" z; j--9.2 让子弹不伤害自己和队友 , @) }& M/ w. f8 T" L
--9.3 给坦克加上攻击力和生命值
2 l |( p9 _/ i--9.4 绘制血条
, H7 @/ L+ Y, a& | a) L# n' V! I- {, M0 y
+ L- N7 N" w. ? g# W7 w7 s. i$ Q10.特效
. o8 U+ X0 @/ z$ w--10.1 加载素材 9 Z! X* F2 A9 ~ M* t4 [* r! Q
--10.2 编写Effect类,加入到游戏架构中 9 k; W9 C2 l* S
--10.3 实现多种特效,添加特效播放速度
# ~# r7 M O0 ^3 x Y% u0 I5 v--10.4 特效播放次数
9 I" ^, v+ e2 M* w--10.5 特效跟随 B& E+ l. {: @8 y
1 }+ I& g! ~7 _3 g% Y& h
- F. q6 I1 p4 S8 p0 V' M6 T密码:
. c7 {: B' F1 x: Z7 E |
|