基于JAVA坦克大战课程设计报告

  • 格式:pdf
  • 大小:861.74 KB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于java坦克大战课程设计报告

摘要

随着计算机的普及以及对电子游戏的认识,电子游戏已被越来越多的人选作放松、娱乐的休闲方式;电子游戏既不需要专门购买游戏器材,也不需要宽阔的游戏场地,只需要一台能独立完成任务的计算机即可,它可以是人们工作、学习时用的计算机,并不需要另行配置,这比起传统休闲游戏即省钱又省事。局域网游戏更是可以将现实空间中零散的计算机,组织起来,使其在逻辑空间中集中起来,使游戏的组织、开展变得轻松。如此轻松而又安逸的休闲方式,使得越来越多的人尝试,甚至已经将电子游戏作为主要休闲方式,既然有如此多的人使用,那其中必然存在巨大的商机,即使人们不愿意为一个小小的休闲游戏花费金钱,但在游戏中添加广告、游戏相关服务也包藏了巨大的财富;当然电子游戏的制作如今已是空前的火爆,大大小小的游戏公司横空出世,都想在电子游戏制作这个行业里占据一席之地,而一款成功的电子游戏需要精心的策划、分析、设计,只有这样才能获得游戏中包藏的财富,以及做出一款真正能够让玩家娱乐、放松的游戏,而不是骗取玩家钱财的工具。

关键字:局域网;电子游戏;坦克大战;

目录

一、系统分析 (1)

可行性分析 (1)

需求分析 (1)

二、概要设计 (2)

工作流程图 (2)

项目规划 (3)

开发及运行环境 (3)

三、详细设计与算法实现 (4)

游戏主窗口 (4)

网络管理 (6)

封装的游戏元素 (8)

四、测试 (10)

测试环境 (10)

测试结果 (10)

五、软件截图 (11)

六、总结 (14)

七、参考文献 (15)

一、系统分析

可行性分析

技术可行性

软件使用swing、GUI、Socket、面向对象设计等技术实现,这些技术均已是非常成熟的技术,之前已有相当多使用这些技术的成功案例,故现使用这些技术是可行的。

经济可行性

本软件为免费软件,将免费提供软件的下载、运行和维护服务,软件暂无收入,待公布之后随着使用者越来越多,将添加相应的广告、服务,从而增加收入,若使用者寥寥无几,将再次分析是否重新策划软件或者放弃开发,以减少损失。

需求分析

通过反复研究以及市场调查,得知游戏须具有以下功能:

❑需要有图形游戏界面,让用户能看到游戏给出的反馈

❑有人机交互功能,使用户能操作指定的游戏元素

❑不同队伍的坦克,须显示不同外观,已分辨敌我

❑坦克能够开火,攻击敌方,但不能攻击队友

❑需要有不可被子弹穿透的墙,且墙有可摧毁和不可摧毁两种

❑坦克有生命值,并非被击中一次就会爆炸

❑坦克爆炸后将产生道具,拾到道具的坦克可加满生命值

❑游戏须提供网络支持,即局域网联网对战

❑玩家在游戏中可以发言,即群聊功能

❑须在玩家之间设立房主,掌管游戏何时开始

❑游戏结束时须判断哪一队胜利

❑游戏结束后可重新开始

❑游戏的操作、进度等须提供相应说明,以告知玩家

二、概要设计

工作流程图程序开始

连接服务器

连接成

Y N

新线程

刷屏(间接

调用paint)

25ms 初始化游戏元素

根据游戏元素的属性,对

其经行操作和绘出其图形

Paint 方法

战斗结束?

Y

键盘监听器判断按下的是那个键改变相应游戏元素的属性

项目规划

本游戏是一个典型的局域网对战游戏,应具有如下结构:

❑游戏主窗口

游戏的一切效果、进度、消息等都将由游戏主窗口展示

❑网络管理

负责发送、接收网络数据,以及如何处理这些数据

❑封装的游戏元素

游戏元素包括:坦克、子弹、爆炸效果、墙、道具等游戏必须的元素开发及运行环境

开发时硬件环境

❑CPU:Inter P7350

❑显卡:NVIDIA GeForce9600M GS

❑内存:威刚2G/DDR2-667

❑显示器:三星液晶15.4寸/分辨率:1280X800

开发时软件环境

❑操作系统:Windows7

❑JDK:1.5.0

❑IDE:Eclipse3.4.0

运行时硬件环境

❑CPU:Inter E5200

❑显卡:NVIDIA GeForce7300GS

❑内存:金士顿2G/DDR2-667

运行时软件环境

❑操作系统:Windows Xp

❑JRE:1.6.0

❑显示器:三星液晶19寸/分辨率:1440X900

三、详细设计与算法实现

游戏主窗口

游戏主窗口是人机交互的窗口,对玩家而言,他们只和游戏主窗口打交道,并不关心游戏内部是如何实现的,所以游戏主窗口部分最重要的便是游戏数据的输入、输出。

在程序中须创建一个类TankClient,继承自Frame来创建一个窗口。

游戏数据的输入

游戏中坦克需要能往上、下、左、右四个方向运动,故须设立4个按键,使其能操作坦克,另须设一个键控制坦克开火。为方便操作,本游戏设置WSAD分别表示上下左右,小键盘数字键4,表示开火。

具体实现为,为窗口添加KeyListener(键盘监听器),监听键盘的按下和抬起。在TankClient类中添加内部的适配器类,由于不需要其它类访问,将其设计为private的,以保证面向对象设计的封装性。

代码如下:

/*

*移动按键键盘监听器

*/

private class MoveKeyL extends KeyAdapter{

public void keyPressed(KeyEvent e){

switch(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;

}

}

public void keyReleased(KeyEvent e){

switch(e.getKeyCode()){

case KeyEvent.VK_A:

myTank.keyUpToDir(Direction.L);

break;

case KeyEvent.VK_W: