![零基础学Java项目开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/836/44509836/b_44509836.jpg)
4.2 系统功能设计
本节主要介绍系统实现的功能,搭建好设计的总体框架,从而使我们对待开发游戏有一个系统、全面的认识。
4.2.1 总体功能
游戏由服务器端和客户端两个部分组成。
在服务器端,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类负责创建关卡。游戏服务器端各类功能如表4-1所示,游戏客户端各类功能如表4-2所示。
表4-1 游戏服务器端各类功能一览表
![](https://epubservercos.yuewen.com/0F66A9/23721388009374206/epubprivate/OEBPS/Images/Figure-T59_46149.jpg?sign=1738873068-uIZQWPvi9Aj9oIMPFet7nY3FwULTnl09-0-71436bfc5a9c7bc7f8dac5ba5a1d0483)
表4-2 游戏客户端各类功能一览表
![](https://epubservercos.yuewen.com/0F66A9/23721388009374206/epubprivate/OEBPS/Images/Figure-T60_46150.jpg?sign=1738873068-3nSvknF8b5KofqLwVRV0oGT2WP0kPgvU-0-68d421e5b060df1ed4a66bb8153837ad)
客户端玩家输入主机地址来完成与服务器玩家的连接,双方通过使用指令键来操控自己的坦克,敌方坦克和弹药则是自主随机运行。游戏中会对玩家的分数进行记录,并增加了特殊武器;另外,对此游戏还进行了部分创新,如添加了通信功能,客户端与服务器端的连接访问通过使用套接字Socket来实现。
坦克大战游戏的总体功能如图4-1所示。
![](https://epubservercos.yuewen.com/0F66A9/23721388009374206/epubprivate/OEBPS/Images/Figure-P60_46152.jpg?sign=1738873068-TjwR2WfIlmd8w28hPNi2txWf9nN94Vz2-0-38b692d555216d633599fbcd4fdcb6f2)
图4-1 总体功能图
4.2.2 总体流程图
坦克大战游戏主要实现玩家参加游戏的整个流程。玩家进入游戏运行界面后,程序会初始化坦克、炮弹、障碍物。玩家可以通过控制键盘来控制自己的坦克进行移动、射击、复活等主要操作。当玩家歼灭本关卡所有的坦克后,程序会判定玩家通关胜利,此时运行界面中出现通关胜利的画面。Java版坦克大战游戏的总体流程图如图4-2所示。
![](https://epubservercos.yuewen.com/0F66A9/23721388009374206/epubprivate/OEBPS/Images/Figure-P61_46154.jpg?sign=1738873068-ZUBMuWiz3ZhUeyr8GiQnyCQPpvqnBCae-0-5368042b9798f2a0843678eca03ed2a2)
图4-2 总体流程图