基于某java坦克大战课程设计报告材料超全

上传人:鲁** 文档编号:509703048 上传时间:2023-04-01 格式:DOC 页数:13 大小:2.80MB
返回 下载 相关 举报
基于某java坦克大战课程设计报告材料超全_第1页
第1页 / 共13页
基于某java坦克大战课程设计报告材料超全_第2页
第2页 / 共13页
基于某java坦克大战课程设计报告材料超全_第3页
第3页 / 共13页
基于某java坦克大战课程设计报告材料超全_第4页
第4页 / 共13页
基于某java坦克大战课程设计报告材料超全_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《基于某java坦克大战课程设计报告材料超全》由会员分享,可在线阅读,更多相关《基于某java坦克大战课程设计报告材料超全(13页珍藏版)》请在金锄头文库上搜索。

1、word基于java坦克大战课程设计报告摘 要随着计算机的普与以与对电子游戏的认识,电子游戏已被越来越多的人选作放松、娱乐的休闲方式;电子游戏既不需要专门购置游戏器材,也不需要宽阔的游戏场地,只需要一台能独立完成任务的计算机即可,它可以是人们工作、学习时用的计算机,并不需要另行配置,这比起传统休闲游戏即省钱又省事。局域网游戏更是可以将现实空间中零散的计算机,组织起来,使其在逻辑空间中集中起来,使游戏的组织、开展变得轻松。如此轻松而又安逸的休闲方式,使得越来越多的人尝试,甚至已经将电子游戏作为主要休闲方式,既然有如此多的人使用,那其中必然存在巨大的商机,即使人们不愿意为一个小小的休闲游戏花费金钱

2、,但在游戏中添加广告、游戏相关服务也包藏了巨大的财富;当然电子游戏的制作如今已是空前的火爆,大大小小的游戏公司横空出世,都想在电子游戏制作这个行业里占据一席之地,而一款成功的电子游戏需要精心的策划、分析、设计,只有这样才能获得游戏中包藏的财富,以与做出一款真正能够让玩家娱乐、放松的游戏,而不是骗取玩家钱财的工具。关键字: 局域网;电子游戏;坦克大战;目 录一、 系统分析- 1 -可行性分析- 1 -需求分析- 1 -二、 概要设计- 2 -工作流程图- 2 -项目规划- 3 -开发与运行环境- 3 -三、 详细设计与算法实现- 4 -游戏主窗口- 4 -网络管理- 6 -封装的游戏元素- 8

3、-四、 测试- 10 -测试环境- 10 -测试结果- 10 -五、 软件截图- 11 -六、 总结- 14 -七、 参考文献- 15 - / 一、 系统分析可行性分析技术可行性软件使用swing、GUI、Socket、面向对象设计等技术实现,这些技术均已是非常成熟的技术,之前已有相当多使用这些技术的成功案例,故现使用这些技术是可行的。经济可行性本软件为免费软件,将免费提供软件的下载、运行和维护服务,软件暂无收入,待公布之后随着使用者越来越多,将添加相应的广告、服务,从而增加收入,假如使用者寥寥无几,将再次分析是否重新策划软件或者放弃开发,以减少损失。需求分析通过反复研究以与市场调查,得知游戏

4、须具有以下功能:q 需要有图形游戏界面,让用户能看到游戏给出的反应q 有人机交互功能,使用户能操作指定的游戏元素q 不同队伍的坦克,须显示不同外观,已分辨敌我q 坦克能够开火,攻击敌方,但不能攻击队友q 需要有不可被子弹穿透的墙,且墙有可摧毁和不可摧毁两种q 坦克有生命值,并非被击中一次就会爆炸q 坦克爆炸后将产生道具,拾到道具的坦克可加满生命值q 游戏须提供网络支持,即局域网联网对战q 玩家在游戏中可以发言,即群聊功能q 须在玩家之间设立房主,掌管游戏何时开始q 游戏完毕时须判断哪一队胜利q 游戏完毕后可重新开始q 游戏的操作、进度等须提供相应说明,以告知玩家二、 概要设计工作流程图程序开始

5、连接服务器连接成功?YN新线程刷屏(间接调用paint)延迟25ms初始化游戏元素根据游戏元素的属性,对其经行操作和绘出其图形Paint方法战斗完毕?Y键盘监听器判断按下的是那个键改变相应游戏元素的属性项目规划本游戏是一个典型的局域网对战游戏,应具有如下结构:q 游戏主窗口游戏的一切效果、进度、消息等都将由游戏主窗口展示q 网络管理负责发送、接收网络数据,以与如何处理这些数据q 封装的游戏元素游戏元素包括:坦克、子弹、爆炸效果、墙、道具等游戏必须的元素开发与运行环境开发时硬件环境q CPU:Inter P7350q 显卡:NVIDIA GeForce 9600M GSq 存:威刚2G/DDR2

6、-667q 显示器:三星液晶15.4寸/分辨率:1280X800开发时软件环境q 操作系统:Windows7qq运行时硬件环境q CPU:Inter E5200q 显卡:NVIDIA GeForce 7300 GSq 存:金士顿2G/DDR2-667运行时软件环境q 操作系统:Windows Xpqq 显示器:三星液晶19寸/分辨率:1440X900三、 详细设计与算法实现游戏主窗口游戏主窗口是人机交互的窗口,对玩家而言,他们只和游戏主窗口打交道,并不关心游戏部是如何实现的,所以游戏主窗口局部最重要的便是游戏数据的输入、输出。在程序中须创建一个类TankClient,继承自Frame来创建一个

7、窗口。游戏数据的输入游戏中坦克需要能往上、下、左、右四个方向运动,故须设立4个按键,使其能操作坦克,另须设一个键控制坦克开火。为方便操作,本游戏设置WSAD分别表示上下左右,小键盘数字键4,表示开火。具体实现为,为窗口添加KeyListener键盘监听器,监听键盘的按下和抬起。在TankClient类中添加部的适配器类,由于不需要其它类访问,将其设计为private的,以保证面向对象设计的封装性。代码如下:/* * 移动按键键盘监听器 */privateclass MoveKeyL extends KeyAdapter publicvoid keyPressed(KeyEvent e) swi

8、tch (e.getKeyCode() case KeyEvent.VK_A:myTank.keyDownToDir(Direction.L);break;case KeyEvent.VK_W:myTank.keyDownToDir(Direction.U);break;case KeyEvent.VK_D:myTank.keyDownToDir(Direction.R);break;case KeyEvent.VK_S:myTank.keyDownToDir(Direction.D);break;publicvoid keyReleased(KeyEvent e) switch (e.get

9、KeyCode() case KeyEvent.VK_A:myTank.keyUpToDir(Direction.L);break;case KeyEvent.VK_W:myTank.keyUpToDir(Direction.U);break;case KeyEvent.VK_D:myTank.keyUpToDir(Direction.R);break;case KeyEvent.VK_S:myTank.keyUpToDir(Direction.D);break;/* * 开火按键键盘监听器 */privateclass FireKeyL extends KeyAdapter publicvo

10、id keyReleased(KeyEvent e) switch (e.getKeyCode() case KeyEvent.VK_NUMPAD4:myTank.fire();new TankFireMsg().send();break;游戏数据的输出玩家需要从游戏输出数据中获得游戏信息,如坦克在往上行驶、坦克发了颗子弹、坦克爆炸等,这些均需要通过游戏数据的输出来告知玩家。由于TankClient继承自Frame,Frame类中的方法paint,可以在窗口中绘制图形,即满足了游戏需要图形界面的需求;另有方法repaint可以刷新窗口,以与时提供游戏信息,故须创建线程,不断地刷新窗口,来获取最

11、新的游戏信息。代码如下:publicvoid paint(Graphice g) for (int i = 0; i allGE.size(); i+) int allGEOldSize = allGE.size();GameElement ge = allGE.get(i);if (ge instanceof Moveable) Moveable moveable = (Moveable) ge;moveable.move();ge.draw(g);/* * 如果容器数量减少,如此减少相应的遍历索引i */if (0 allGEOldSize - allGE.size() i -= allG

12、EOldSize - allGE.size();/* * 刷屏线程,负责画面的刷新以与游戏时间的推进 */privateclass MyTh implements Runnable publicvoid run() while (true) repaint();try Thread.sleep(25); catch (InterruptedException e) e.printStackTrace();为使游戏主窗口效率更高、更容易被引用,且游戏主窗口只有一个,故TankClient类使用单例模式来设计:privatestaticfinal TankClient tc = new TankC

13、lient();private TankClient() .publicstatic TankClient getTc() returntc;网络管理游戏需要对局域网对战的支持,所以需要对网络数据进展管理,使游戏能有条不紊地运行,网络管理局部主要负责输入游戏数据后发往其它游戏客户端,以与接收其它客户端发来的游戏数据。需要发送的游戏数据有:坦克创建消息TankCreateMsg、坦克开火消息TankFireMsg等客户端游戏数据的收发由于每个游戏消息都有共同的特性,即发送、承受,故将其抽象出一个父类Msg,所有的消息类都继承自Msg类。public abstractclass Msg publi

14、c staticfinal TankClient tc = TankClient.getTc();public staticfinal int TANK_CREATE_MSG = 1;public staticfinal int TANK_CHANGEDIR_MSG = 2;public staticfinal int TANK_CALIBRATION_MSG = 3;public staticfinal int TANK_FIRE_MSG = 4;public staticfinal int CHAT_WORD_MSG = 5;public staticfinal int TANK_READY_MSG = 6;public staticfinal int GAME_START_MSG = 7;public staticfinal int GAME_OVER_MSG = 8;public staticfinal int GAME_EXIT_MSG = 9;public staticfinal int GAME_CHANGEMASTER_MSG = 10;public abstr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号