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/特效。: o6 b. _8 P E
9 { {+ C1 _: x: a; B$ y: Y2 F6 ?! M5 v& n5 e1 o
+ u% l0 {6 C# G3 V
' ?$ t. O$ F" L- E9 }. y+ @3 y) W* i2 S$ | |
项目说明:
% T- z" k) {- e1.程序结构分析: q% M2 T/ x+ d+ J
--1.1 窗体: 顶层容器,用来显示画板等UI组件
Z7 b2 B' A% x--1.2 画板: 取出游戏数据进行绘制 8 \" x5 I, o7 z; P- |
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问
' {, B! e2 u4 p9 V6 {# ]--1.4 数据管理: 要求游戏中任何地方可以直接获取数据
7 [% R6 L$ c4 F$ c) D/ I--1.5 中心计时器: 让画板反复绘制 ( A4 Y$ d4 M! P- t7 B. U
% I7 R$ O% i* z/ P& q, m5 I, {$ C4 ]: p7 t+ e" q4 ~
2.基础结构编写
5 D6 c* E' X0 E8 ~" Y" q, g# \) _窗体:GameFrame extends JFrame
+ R8 \5 @, J4 P D画板:GamePanel extends JPanel k' T6 `7 F6 L
资源管理:Res
, B" e6 _8 t z0 q% G9 g9 E数据管理:Data # y) S q% t/ F) ~; q; f+ ^
中心计时器:Timer extends Thread % @1 D0 O Q/ h( R7 e; P) _
: N/ h+ W# u: d
5 H/ v, R" U% G7 B
3.让坦克动起来 % {; ?* R9 s9 c! y* T
--3.1.在Tank中添加move方法,在画板重绘时调用
) w4 K% v' I* l6 G' p--3.2.在窗体中加键盘监听,控制玩家坦克移动
7 N9 E; Y) E2 e- A0 K G9 l0 S--3.3.边界限定,防止坦克移动到视野外 2 [4 f, d( ?, J
# ~) o, f4 B j0 c" q, M
" g5 j$ Q2 y5 ~8 F) _' f4.添加可以360度旋转的炮筒 , x" y$ b w( R& t
--4.1工具类 : a8 Y) T3 @8 V
--4.2加入资源(红蓝炮筒) 5 R: x" f/ N& o0 h9 ~" c. R
--4.3指定方向画出炮筒
" Y: |8 p% P6 u6 N; }--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 5 n) F! H- o1 d4 [8 p# _
- d8 u$ v% B6 I5 z
" e) s q! G* A `" _
5.让坦克可以打出子弹 & U5 N; l" O5 y9 q
--5.1 新建子弹类
- Y( z/ \7 F; W# o H, E* C, G% K--5.2 把子弹加入到游戏架构中 / J5 x3 M: q; u" |8 k' W
--5.3 画出子弹 9 H7 z3 X; a* s2 u6 H
--5.4 attack
+ H6 k* e2 Z* r4 X3 a$ B5 A8 ]
9 G4 @9 A& S! i. m1 [ O$ F# m# }1 F/ `+ t% w* F
6.解决前面问题,调整优化 ; Z; X0 F# w, X6 X9 |
--6.1 将点系统数据换成double类型
( P5 M3 l4 I; D% l--6.2 调整坦克的目标点位置在鼠标头部
3 H, j3 v) y |: k- \' }--6.3 把鼠标监听mouseClick改为mousePressed
: k6 q) [4 C% W* }3 B; m--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系;
, L6 e$ p, p Y: x--6.5 子弹从炮口发出
- N, x: o1 Z% G9 i) F% S
3 `6 d, H, \0 S. R8 A& F( R" M3 b4 e w) T( n& d) T
7.一大波机器人正在靠近
5 \5 j, `$ c" B2 M4 s* g--7.1 分队伍,变颜色 - v2 I$ ^) B+ \ \& p- V$ e" g4 P
--7.2 创建Robot类继承Tank
) z) |7 E+ @; d0 s! b/ q5 C--7.3 简单AI让Robot动起来
3 {+ j8 H% V0 Y' [--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化)
" V" ?8 \% }3 e1 O--7.5 让Robot随机指定目标点 & i5 E q C% a9 q$ { [ E, i
--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中) ! U- w r8 G5 @
1 \* |/ Y- U C) G4 v- K# l0 J
( b* E* N/ w; h% k1 L6 S8.游戏数据的管理与维护 5 T9 f. a& o$ K% I7 `- D
--8.1 工厂模式创建对象
9 X: K& j; D$ e2 v, ^--8.2 移除游戏数据的方法 . e5 X1 i6 @% }$ i/ H# Z6 ^% O- V
5 T2 K$ m( g3 u9 s5 S: c* s2 U4 n5 b. @; p
9.这子弹是真的 2 l% [3 Q; k: Y
--9.1 在子弹移动过程中遍历所有坦克计算距离
0 H. h! ]. @$ d( U* z( q9 z2 u--9.2 让子弹不伤害自己和队友 ) X% e2 V4 [3 z: E
--9.3 给坦克加上攻击力和生命值 8 w- u5 d7 V: q! H
--9.4 绘制血条 * S0 V+ Z v8 N
+ a9 K1 O: M1 |2 @$ N; e% c
* J" r: I, ?* P" X- q+ X10.特效 8 K+ [0 x0 p0 h" J7 s- G' Z# c
--10.1 加载素材
% ]$ c9 F: L$ x5 n: f( F+ H: R6 o! {--10.2 编写Effect类,加入到游戏架构中 0 \9 ~/ Q6 _& u: k! S/ B. C( U
--10.3 实现多种特效,添加特效播放速度
- \: b( R" a+ y- U& s5 K7 e6 x--10.4 特效播放次数 ' V- b7 R0 Y; F8 L% _9 f0 m8 s2 F
--10.5 特效跟随 9 v( E" K, s0 e/ k# V Q
% O( x! @: |$ x0 j, l
- z5 |+ B0 g: C5 h* r
密码:
& Z* N N. @. L% V* x |
|