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/特效。
3 N. {! h' O9 P8 A1 b( u
. W, J1 W( U9 m% c
7 y2 R8 G0 u+ v9 k. F8 d
% P0 P/ T+ p% T2 }) ?' H
% D6 P9 Y( A5 N3 z) V! q T
8 u7 @' o) P8 n
项目说明:
) y1 @- {5 d" h* F1.程序结构分析: : {" m6 r0 o$ L0 y
--1.1 窗体: 顶层容器,用来显示画板等UI组件
' k m6 b, F6 F3 y Q--1.2 画板: 取出游戏数据进行绘制 + v' D+ q. m6 C. V, O) s
--1.3 资源管理: 统一管理所有素材,任何地方可以直接访问
7 w" V6 ?6 |3 O0 |4 ?/ G--1.4 数据管理: 要求游戏中任何地方可以直接获取数据
1 V! d6 F4 E: @ c$ b' N; Q2 b) \--1.5 中心计时器: 让画板反复绘制 4 L/ E9 Q! }/ ]% A H2 J
! R( B4 U% `- H# x" c3 [: _0 _$ K1 {2 l, F* k2 T
2.基础结构编写 2 D' m" `+ M4 u& d$ N" G8 f
窗体:GameFrame extends JFrame & }/ \1 r( K. f8 Q
画板:GamePanel extends JPanel : z5 a0 j* _' i, Y' {
资源管理:Res
: g; R; D( q5 X" _, L' U' O. {! `数据管理:Data ( P! y* U7 s2 n
中心计时器:Timer extends Thread
, v! P" R/ M3 D" v4 W+ U. ~. ]$ ?5 T' N
' x, |* c1 D ?) D) F- Z/ u
3.让坦克动起来 1 q0 Q, ~; z8 j/ ^, F$ W4 M7 _
--3.1.在Tank中添加move方法,在画板重绘时调用
, z$ C. O3 o" r5 h: O+ t--3.2.在窗体中加键盘监听,控制玩家坦克移动
# w* {/ _% i' p3 B/ H" O! A--3.3.边界限定,防止坦克移动到视野外 ' A8 p6 T _3 ^' y
* |. i5 M( ~% n; ^
6 Z# s# p$ l# i1 A6 `7 j# m/ \4.添加可以360度旋转的炮筒
2 U1 [4 H4 i' D+ o- v, p" h( J--4.1工具类 . n$ P1 r1 f1 j: r
--4.2加入资源(红蓝炮筒)
5 h' g$ \5 @( J- B2 v--4.3指定方向画出炮筒
- Q4 j7 M" \& m* t; @9 i& v7 k--4.4加入target变量(目标点),geters and seters,绘制,加鼠标监听,设置目标点 + H. W E, i" @3 k% Y" d
& M6 c$ Z) h3 J
0 Z1 Q+ Y7 H: e
5.让坦克可以打出子弹 & B3 z. A* G1 A4 Y" c: y4 Y$ r
--5.1 新建子弹类
+ A" x2 K- I d--5.2 把子弹加入到游戏架构中
6 g; j: G& e4 W+ H: @. s" W" ?--5.3 画出子弹 . L/ m# x: [+ c% a
--5.4 attack
9 O+ r& _1 l4 N1 D1 F0 S( K- s3 n5 O
+ z( Z" m0 `+ A& R% K0 S- o; O3 X
6.解决前面问题,调整优化
' U: ~0 h# |' g s. s4 F; K--6.1 将点系统数据换成double类型 ( c' P. q8 h M5 p
--6.2 调整坦克的目标点位置在鼠标头部
[% I* ^+ y7 \' L--6.3 把鼠标监听mouseClick改为mousePressed & p0 N! z( R; Y0 ? j( g- `
--6.4 修改两点方向计算方式,让右方向为0度;调整炮筒与角度的关系; 9 K$ {( g* C4 F3 u4 ?
--6.5 子弹从炮口发出 9 ]: K! n- y0 p. P1 K; h. i0 M( e
0 k" n; f. [6 ?! z A, M' X2 y- ?4 H0 E1 T% `
7.一大波机器人正在靠近 4 z' @0 W' x) v1 o0 n/ p
--7.1 分队伍,变颜色 * j- N! X* A, {6 H
--7.2 创建Robot类继承Tank ; u# M2 F; D z& R
--7.3 简单AI让Robot动起来
, f' z/ r/ C$ y2 i! \--7.4 把Tank中的target的类型从awt.Point改为ZZPoint(属于数据调整优化)
/ S1 E) G) p. f2 E--7.5 让Robot随机指定目标点 ' Q6 h# I$ O( ]: L% |& J
--7.6 让Robot随机指定玩家坦克进行攻击(坦克中的设置目标点方法对鼠标坐标进行了优化,这个优化会导致Robot目标点设置不准确,所以需要把那两句调整x,y的代码放到鼠标监听中)
+ B0 [& m5 U' F+ [& \4 s9 m, ?. |1 ^7 h+ ?
) `% H e$ s; e' x) j! K# G
8.游戏数据的管理与维护
' t1 x( [* G( @/ o) M' O% u( C--8.1 工厂模式创建对象 8 b5 d% |0 d% F' K. i
--8.2 移除游戏数据的方法 - v4 H& p) p0 _+ J* o
% }7 K& l1 h' \9 \& \$ P5 G. Z& u
0 K! b; B& X6 S; l# m) _2 c+ f9.这子弹是真的 & K0 F/ S$ G5 x' |- {7 T0 U6 {2 w
--9.1 在子弹移动过程中遍历所有坦克计算距离
8 x' F+ F2 w9 X. Y--9.2 让子弹不伤害自己和队友
- B5 O p Q s--9.3 给坦克加上攻击力和生命值 # p& h# U9 L( p4 W7 J
--9.4 绘制血条 . L, g+ l# f% ? u
, Z2 j7 N7 ]1 \0 }$ u
7 \1 U1 _; E6 R' ^" I10.特效
8 ~' D' Q0 ]8 t Z" _3 G5 T5 F+ k--10.1 加载素材 + n# @$ j, d. O6 Q9 S. E
--10.2 编写Effect类,加入到游戏架构中
|% M# `3 ^6 a ?' _! B4 B" F! R" L3 p--10.3 实现多种特效,添加特效播放速度
, i. x3 V: d b4 E--10.4 特效播放次数 # F" s/ G O! D9 n4 F1 r+ m
--10.5 特效跟随 * ^2 v) y$ \ [( M Z, N( \
1 d2 |1 E* {. z) Z$ g- ]# B7 B
5 t1 q/ y$ i: A
密码:) ~6 B' e7 z C1 s% ~ Q
|
|