基于Java的坦克大战游戏的设计与实现

游戏由服务器端和客户端两部分组成。

在服务器端,ServerModel类主要用来创建主机,ServerView类主要负责服务器端图形界面的面板信息的设置,ServerControler类处理来自服务器视图框架的输入,包括创立通信与帮助信息等,enemy类主要负责敌方坦克的创建,player类主要用来设置玩家的得分及其显示位置等信息,drawingPanel类主要负责服务器端界面窗口的创建和设置,powerUp类主要用来设置子弹属性,例如加快速度、提升火力等,feedbackHandler类主要用来解码从客户端发来的指令字符串,再将其转换成指令来判断游戏失败后玩家是否继续游戏的问题。

在客户端,ClientModel类主要用来设置与服务器的连接,ClientView类主要负责客户端端图形界面的面板信息,ClientControler类主要负责处理来自客户端视图框架的输入和创立通信与帮助信息等,drawingPanel主要用来设置客户端窗口界面,instructionHandler类主要用来解码从服务器端发来的指令字符串,再将其转换成指令来判断游戏失败后玩家是否继续游戏的问题,shield类主要负责设置坦克吃掉头盔图标获得保护时的状态,normalObject类主要用来创建和描绘其他物体对象。

在服务器端和客户端中都存在的类中,Actor类主要用来创建接口,base类主要用来创建基地并设置属性,bullet类主要用来创建子弹并设置属性,Ticker类主要用来创建时间信息,bomb类主要用来创建子弹打出后产生的爆炸效果,river类主要用来创建河道并设置属性,grass类主要负责创建草坪并设置属性,Steelwall类主要用来创建铁墙并设置属性,wall类主要用来创建和设置普通墙及其属性,level类负责创建关卡。如表1,表2所示。

表1  游戏服务器端各类功能表

ServerModel

创建主机

ServerView

设置服务器端图形界面的面板信息

ServerControler

处理来自服务器视图框架的输入

enemy

创建敌方坦克

player

设置玩家的得分及其显示位置等信息

drawingPanel

创建和设置服务器端界面窗口

powerUp

加快子弹速度并提升火力

feedbackHandler

判断指令并执行

Actor

创建接口

base

创建并设置基地

Ticker

创建并设置时间信息

bullet

创建子弹并设置属性

bomb

设置爆炸效果

river

创建河道并设置属性

grass

创建草坪并设置属性

Steelwall

创建铁墙并设置属性

wall

创建普通墙并设置属性

level

创建关卡

表2  游戏客户端各类功能表

ClientModel

设置与服务器的连接

ClientView

设置客户端端图形界面的面板信息

ClientControler

负责处理来自客户端视图框架的输入

drawingPanel

设置客户端窗口界面

instructionHandler

判断指令并执行

shield

设置玩家坦克防护盾

normalObject

创建并描绘其他的物体对象

level

创建关卡

base

创建并设置基地

Ticker

创建并设置时间信息

bullet

创建子弹并设置属性

bomb

设置爆炸效果

river

创建河道并设置属性

wall

创建普通墙并设置属性

客户端玩家输入主机地址来完成与服务器玩家的连接,双方通过使用指令键来操控自己的坦克,敌方坦克和子弹则是自主随机运行,游戏中会对玩家的分数进行记录,还增加了特殊武器,另外,此游戏还进行了小小的创新,添加了通信功能,客户端与服务器端的连接访问通过使用套接字Socket来实现。

其总体功能如图1所示。

3.2 坦克大战总体流程图

如图2所示。

图2  总体流程图

游戏启动测试

运行Eclipse中的server项目和client项目或双击server文件夹和client文件夹下的Play.BAT文件来运行游戏,游戏启动成功,看到了游戏界面。如图3所示。

具体内容较多,可以参看

链接:https://pan.baidu.com/s/1FdglA0IQ9fs_YM1A0XyQsQ?pwd=pqzw 
提取码:pqzw