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/特效。, U& f. k4 _4 Y+ l2 P
! k, Z, ?! k Z/ a/ P$ x
8 Z" c! V! x! y5 E' r8 K
|" |/ u) s p% T% _
# d# ^' @: E/ J! \
7 V) ?+ [8 y( h0 P* s
项目说明:1 l+ r" x$ x3 I: D$ x+ w9 D
1.程序结构分析: 0 Y( e9 E& {1 _0 B! J1 }/ Z
--1.1 窗体: 顶层容器,用来显示画板等UI组件 2 Y$ K/ X1 A$ Z3 M
--1.2 画板: 取出游戏数据进行绘制
5 T9 Q. D' [+ J/ E--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问 ; e- b8 z. h9 r6 J
--1.4 数据管理: 要求游戏中任何地方可以直接获取数据 ! H& g! ?& u, N! a9 U; v, R8 m
--1.5 中心计时器: 让画板反复绘制
0 K1 M% b9 ?; @
. c! `7 @5 Q% c+ l3 g" m- Z# a2 h% ?5 @$ Z
2.基础结构编写
) b! W5 @" {, F$ C& f窗体:GameFrame extends JFrame
7 c2 m" x$ B: [7 k7 N |画板:GamePanel extends JPanel
" a$ j' W; p7 r3 T) L4 c资源管理:Res . K) d2 X' {( S. j& ^/ S
数据管理:Data
4 s5 J D1 q8 x% [' h9 N2 E6 T中心计时器:Timer extends Thread
+ Z4 j6 ^* z( v* Q3 B" R! |9 ]* b% k9 i7 l- x8 D
2 q' ~4 Z3 `( K& u# ~1 G3.让坦克动起来
* i( w! N" v1 ^; c--3.1.在Tank中添加move方法,在画板重绘时调用 : y4 k( x8 [* N# t
--3.2.在窗体中加键盘监听,控制玩家坦克移动 + F& u+ P& I4 ?* a/ I
--3.3.边界限定,防止坦克移动到视野外
q7 ^, P1 Q: K8 f, C$ ^4 p! [. j5 w u- m
6 u1 e: N5 }5 V/ j
4.添加可以360度旋转的炮筒
, C- Q- a' v* c! {--4.1工具类 & F. S* L% _+ Z9 x2 T7 x
--4.2加入资源(红蓝炮筒)
+ t/ I. w% X- L0 `6 C--4.3指定方向画出炮筒
' i2 c# [& Z6 Q--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 0 n6 \- T- Y: t F. ~4 |
% q9 }7 p, ?7 q$ V. K0 Y" D( {- z; z* F% r5 o% h5 k
5.让坦克可以打出子弹
' C1 x) n9 {' h2 s& D4 _--5.1 新建子弹类 & f: C8 n. X0 N& N
--5.2 把子弹加入到游戏架构中 ) G6 B8 g3 d# v7 w3 t
--5.3 画出子弹 + ^8 @0 v+ s4 h. L* b9 H
--5.4 attack g. E$ q* `# X8 ]( G1 p2 Q6 P
, R2 Z$ D1 v- ?* i* C. m
. c* q6 i4 {/ c: M8 |, a6.解决前面问题,调整优化 + Z9 f6 _1 I$ y5 _8 H7 X% z
--6.1 将点系统数据换成double类型
3 J: ~2 [1 ^6 F: M4 G--6.2 调整坦克的目标点位置在鼠标头部 8 I; u5 @8 P% ~4 x3 R: B
--6.3 把鼠标监听mouseClick改为mousePressed
' ~2 f* D: Y/ K, N/ U N) R5 ^9 j" D--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系; 1 s* }! {6 o+ }6 ?% T
--6.5 子弹从炮口发出
9 _, }# U2 B- ~
/ v! i5 b, l0 D0 T3 j5 t7 P( j' ]$ Z5 [ I+ |' o
7.一大波机器人正在靠近 5 O, ]9 e, v2 ? I" B" `
--7.1 分队伍,变颜色 ' C' R) n& S3 h5 d2 m( \7 x. c$ q
--7.2 创建Robot类继承Tank
* r5 r% ~0 _6 \9 ]- Y1 ^" v--7.3 简单AI让Robot动起来 4 T( I/ m7 X# B: r3 F L, H
--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化)
+ T8 K; I$ B/ b, ?. l5 \8 P' S4 B. M. e--7.5 让Robot随机指定目标点 6 ~0 k ~- I, E Z+ `0 P
--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中) * E) t; {$ u- o+ n+ K9 a* x9 E
& R3 n% R y1 w/ x4 f
9 x7 K/ _6 ]( B5 h, E8.游戏数据的管理与维护
: J f; _, m/ J--8.1 工厂模式创建对象 N4 Y; Z+ I; R, R
--8.2 移除游戏数据的方法
. U/ d+ S) O: ?2 e5 Q
5 z0 m: z+ I$ b) c. ]# U# ]" E6 w }, ?3 J1 c6 i
9.这子弹是真的
# q# S% n! |, l2 n- u--9.1 在子弹移动过程中遍历所有坦克计算距离 7 g+ x& c/ y- m* @2 V" L
--9.2 让子弹不伤害自己和队友 7 [0 U4 D" r2 {( [
--9.3 给坦克加上攻击力和生命值
! o; ?5 w0 t* U5 I/ Q) z$ A--9.4 绘制血条
7 I: N A6 D0 p; ?- d. {
5 O0 u; u* A. m7 W' J3 S4 {/ L4 l8 B8 n% N
10.特效 * E3 r: B1 T: U/ d8 e9 P
--10.1 加载素材 ) C. F/ w3 N! t
--10.2 编写Effect类,加入到游戏架构中 * @- t; w6 Q: I7 o
--10.3 实现多种特效,添加特效播放速度 ; D' H! P8 l8 ?* i w
--10.4 特效播放次数 / c$ K; N0 R) _3 }+ B; r
--10.5 特效跟随 2 [- X( P% J% A5 t
! p. D# [) C$ N1 q3 w# C' q( m2 }+ @0 i) @% W
密码:
" I& }/ l. T! h# I) Z |
|