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/特效。# U8 [( ~0 s9 k. `
% `$ D/ ?% A# I3 P- J4 n( ~- P0 r5 a
: \4 c4 w' \0 w: K6 U Y2 D( w( B9 w3 d/ I5 v6 s% G+ P
! r! [4 g K8 R% u$ C% D) u; I5 a
% t9 w* V' q0 j" a5 W项目说明:3 w/ A6 F/ \2 e- z- W- @
1.程序结构分析:
, n/ y$ u2 [5 J1 y+ s8 M* S--1.1 窗体: 顶层容器,用来显示画板等UI组件
# ?& n" F6 v! b& c5 _& `- C--1.2 画板: 取出游戏数据进行绘制 - P+ ~7 ?1 X: k( F- H# A$ ~2 Y
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问
. }+ c0 I) E" v+ w8 t9 z9 R/ m--1.4 数据管理: 要求游戏中任何地方可以直接获取数据 # p1 e$ a& {: k2 ^) n- _/ g$ ~7 r' d
--1.5 中心计时器: 让画板反复绘制 * o6 S {" B1 T& h
3 E, P+ C8 B+ J9 t7 W: ?
9 a' O6 x; x$ j% z2 e1 A, x8 ^2.基础结构编写
# {1 L4 W7 y$ G6 p3 ?3 F% _- {窗体:GameFrame extends JFrame
- Q/ x; i) L4 q# \: j8 s6 P画板:GamePanel extends JPanel % ]( B) ^6 C6 B6 u) t
资源管理:Res
" n- u& O, Y$ x数据管理:Data
# ~6 _ B$ g5 W( u6 t) Y- m中心计时器:Timer extends Thread / y I% h8 Z' l1 j
5 |% A- N6 |' G$ E
; O4 r: c- [$ Q( [0 M
3.让坦克动起来
" a/ a% T6 E& _8 K8 Y0 E9 P--3.1.在Tank中添加move方法,在画板重绘时调用
0 P- B6 t! _9 L& D. J--3.2.在窗体中加键盘监听,控制玩家坦克移动
* g6 i" o7 s4 l" p9 M: }--3.3.边界限定,防止坦克移动到视野外 # p2 T" n# k0 B0 g1 \# y) _: u
! z7 n% d# d8 m0 E5 X- n& A; S1 c- F: T; c0 ~ A
4.添加可以360度旋转的炮筒
) j0 ^8 h8 S/ J! r--4.1工具类
, k4 d3 E0 N4 N6 }--4.2加入资源(红蓝炮筒) ! H9 n/ f3 [( K
--4.3指定方向画出炮筒
. i! i: ]6 S6 B( p7 u5 p# {, D, z--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 # }. h- X9 B. p) [( G
. b6 I6 h" s2 y
3 z, V. y0 B/ @% p. U6 z5.让坦克可以打出子弹
/ c% t+ K% W7 l U3 d--5.1 新建子弹类
/ f1 t/ z# E& C2 X+ ]0 o; F7 F--5.2 把子弹加入到游戏架构中 ( w& B4 m: S, h
--5.3 画出子弹
/ \4 C+ J, X- |: r. ~1 e' d--5.4 attack
5 B2 s9 [8 `5 B/ ?# j
& e5 A' X9 k$ p. `0 r* t" R# ^( F# y, a5 Q) r
6.解决前面问题,调整优化 4 H- @# u* P2 M2 f8 [) m) n+ d1 E
--6.1 将点系统数据换成double类型 , H, U7 C2 W* H; h4 I4 r
--6.2 调整坦克的目标点位置在鼠标头部
* ^+ W, _2 g7 v# U8 n8 m--6.3 把鼠标监听mouseClick改为mousePressed
9 s6 A) q5 a/ T--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系;
; }% D8 t2 X( i--6.5 子弹从炮口发出
* Z0 \; x3 |+ {$ b: w+ R8 p; p Z$ ]7 _
8 O3 J) H- @/ X# F
7.一大波机器人正在靠近
/ |/ c) m& j" M3 ^$ u--7.1 分队伍,变颜色
; S' E1 E% x4 G* L2 ?6 c--7.2 创建Robot类继承Tank 6 Q% ~7 h3 t; h2 g$ G- i& Y3 H
--7.3 简单AI让Robot动起来
6 m. m/ I. L9 \: ?$ Q) y4 @& e--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化)
3 `& |5 s- m9 k- ~5 b--7.5 让Robot随机指定目标点
& h( u! s! q' p) T7 @. g6 y--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中) 3 l8 @* a o+ a A9 I
7 ] A) d* p+ O M, R5 f+ f
3 z! {2 T* y2 l3 t& y7 K8.游戏数据的管理与维护 7 q2 L* ]& Y2 g) }$ c
--8.1 工厂模式创建对象 " X, Z; ~: k8 j8 P5 W
--8.2 移除游戏数据的方法
. U+ h5 p1 m1 T, L) I0 x [9 n) P* t4 q( Q8 `$ t
; z9 b+ |- D4 u8 b2 E4 R6 h7 U9.这子弹是真的 9 D8 o3 A- H. d0 d1 T( a7 c
--9.1 在子弹移动过程中遍历所有坦克计算距离 ) t3 A; G! i0 ]$ c
--9.2 让子弹不伤害自己和队友 ) b$ K) _, b; Z7 E, H
--9.3 给坦克加上攻击力和生命值
: I2 }. k6 N& t3 l* K% B9 S# |. R--9.4 绘制血条
' n! V! s6 b' U r$ k* l" |0 H: c. t1 m8 x6 ~
3 @+ h5 B4 |1 s8 o' ~) |0 d10.特效
6 f' D! w0 e# B; c0 d1 f0 K--10.1 加载素材 & U/ @3 p$ n# A3 \
--10.2 编写Effect类,加入到游戏架构中 ' Y2 ~* s% N1 A5 g, X1 c' ]
--10.3 实现多种特效,添加特效播放速度 j8 M7 u/ g B. a; K
--10.4 特效播放次数 2 k& d0 F9 Q. T) |: D+ q8 L J
--10.5 特效跟随 1 l1 U# _7 W8 m4 t2 U: B" _
0 _! A9 r) ]! ]! N% v; C3 J/ o8 ^. `( i8 f/ Y
密码:4 l" N0 e+ W- x4 p3 @% `/ f
|
|