基于java的坦克网战游戏的设计和实现(编辑修改稿)内容摘要:
生命耗尽,游戏结束,玩家可以选择重玩,但需要双方 做出一致选择。 四川师范大学成都学院本科毕业设计 6 3 总体设计 程序运行流程 本游戏程序运行需要玩家双方在局域网内建立通信,也可在同一电脑上建立通信,但只能 操作 一个玩家。 具体运行流程如图 所示: 图 程序 运行流程如图 总体构架 本游戏 在设计过程中,为了降低设计难度,将整个程序按模块进行单独编写, 包括开始 服务器建立主机 建立成功 客服端连接主机 运行服务器 运行客服端 连接成功 游戏结束 载入游戏 结束 重玩游戏 否 是 否 是 是 否 四川师范大学成都学院本科毕业设计 7 主类、通信类、坦克类、子弹类、墙类、辅助类、服务器类、客服端类、敌人坦克类、关卡类以及时钟类。 各个类和实现的功能表如表 : 表 各个类和实现的功能表 类 实现功能 主类 实现游戏窗口的显示 提供公共接口 通信类 实现玩家间建立游戏 使玩家间可以进行信息交流 坦克类 添加坦克图片 控制坦克移动 让坦克可以发出 子弹 让玩家坦克死亡后重置 使坦克不能穿墙和其他坦克 使坦克可以穿草丛不能穿河 子弹类 画出子弹 控制子弹 让普通子弹可以击毁普通砖墙不能击毁钢墙 让子弹可以穿越草丛和河流 墙类 添加砖墙图片 添加钢墙图片 添加草丛图片 添加河流图片 显示图片 辅助类 添加辅助图片 敌方闪烁坦克阵亡后随机显示辅助图片 玩家获得辅助图片后得到相应辅助功能 服务器类 建立主机 控制游戏进程 客服端类 输入主机 IP连接主机 四川师范大学成都学院本科毕业设计 8 控制游戏进程 关卡类 添加墙类图片并进 行排版编辑 显示添加图片 时钟类 刷新线程 对玩家事件进行监听 控制游戏运行与休眠 4 程序模块 本游戏程序由多个模块同时运行而实现,也体现了 Java 语言的优越性。 通过各个模块的相互调用,它能完成游戏显示,通信建立,控制进程等一系列操作,使游戏规范化,易于操作。 主体模块 主体模块首先构建接口 , 因为 Java 不支持多继承性,即一个类只能有一个父类。 单继承性使得 Java 简单,易于管理程序。 为了克服单继承的缺点, Java 使用了接口,一个类可以实现多个接口。 使用关键字 interface 来定义一个接口。 接口的定义和类的定义很相似,分为接口的声明和接口体。 其次是画出游戏面板和游戏窗口的显示 ,在游戏窗口中添加了几个功能按键,主要进行联机操作,游戏进程操作等。 游戏过程中,游戏版面显示当前关卡数,敌人剩余数,玩家生命数以及玩家获得的分数。 通信模块 通信模块通过 Java语言中套接字 Socket编写通信类 ,针对游戏中客户端和服务器的联机功能的实现,它的通信过程是基于 TCP/IP 协议中传输层接口 socket 实现。 通过通信模块玩家可以进行信息传递以便协同作战,为本游戏添加乐趣。 坦克模块 坦克模块部分主要由玩家坦克 和敌人坦克组成,敌方坦克随机出现,并随机移动,玩家通过键盘操作来控制坦克的移动和对敌方坦克进行攻击。 玩家坦克可以对敌方闪烁坦克进行攻击,并得到额外辅助道具,获得道具后玩家坦克具备相应功能。 敌方 坦克由游戏窗口上方按照左中 右依次出现,敌方在移动过程中随机发出子弹,如遇见障碍则随机改变运动方向。 玩家在第一关卡时,最多同时出现三辆敌方坦克 , 随着游戏的进行敌方坦克数量随之增加且敌方坦克运动速度加快, 和经典单机坦克游戏十分相似,将玩家带入童年回忆。 四川师范大学成都学院本科毕业设计 9 子弹模块 在该模块中,初始玩家一次只能发射一颗子弹,且只对敌方坦克和普 通砖墙有效,当子弹消失后才能接着发射。 子弹击毁时出现爆炸效果,玩家子弹和敌方坦克发出的子弹可以撞毁, 敌方坦克向四个方向随机移动并发射子弹。 游戏工程中玩家获得相应辅助道具后,子弹速度加快且可以进行连续射击。 墙模块 墙模块是由四个类共同组成,包括砖墙、钢墙、草丛和河流。 通过这四个类的组合,编辑成游戏地图。 游戏地图中,玩家基地周围是由砖墙包围, 在墙模块中,砖墙是最基本的组成,玩家或敌方坦克都能将其摧毁,钢墙只有玩家获得特殊辅助后才能摧毁,玩家和敌方发出的子弹都能穿越草丛和河流。 关卡模块 为了增加游戏的趣味性, 游戏中设计了九个循环关卡。 在游戏过程中,玩家双方各有 3条生命,当玩家双方均把生命耗尽时,通关失败,只有双方选择重玩时才重新开始游戏。 在关卡进行时,任一玩家可以选择暂停游戏, 在每个关卡中设置了玩家基地,当玩家基地被毁, 则 通关失败。 每个关卡设计 20 辆敌方坦克,当敌方坦克均被消灭,游戏自动进入下一关卡。 游戏玩家具体游戏流程如图 所示 : 图 玩家游戏流程图 5 程序实现 载入游戏 开始 失败 重玩 结束 进入下一关 是 否 否 是 四川师范大学成都学院本科毕业设计 10 游戏窗口 界面设计 游戏窗口使用 Frame 类 , Frame 类是 Container 类的间接子类。 当需要一个窗口时,可使用 Frame 或其子类创建一个对象。 窗口也是一个容器,可以向窗口添加组件。 该游戏界面包括文本输入框和按钮,因为服务器端和客户端窗口相似,以下提供客服端游戏窗口设计代码: public class ServerView extends JFrame{ public drawingPanel mainPanel。 public JButton createServer, exit, pauseAndResume, help, hiddenButton。 public JTextField messageField。 public JButton sendMessage。 public ServerControler controler。 public ServerModel model。 public ServerView(){ super(基于 Java 的坦克网战游戏 )。 try { (())。 } catch (Exception e) { } getContentPane().setLayout(null)。 mainPanel = new drawingPanel()。 (null)。 (0, 22, 679, 605)。 (new Color(128, 64, 128))。 setDefaultCloseOperation()。 setBounds(150, 130, 640, 590)。 setVisible(true)。 setResizable( false )。 model = new ServerModel(this)。 controler = new ServerControler(this, model)。 /* * 添加按键和文本框 并实现相应功能 */ 四川师范大学成都学院本科毕业设计 11 messageField = new JTextField()。 (0,519, 560,22)。 (false)。 sendMessage = new JButton(发送 )。 (570,518, 62,24)。 (false)。 (messageField)。 (sendMessage)。 getContentPane().add(mainPanel)。 (true)。 createServer = new JButton(建立主机 )。 (0, 0,120,22)。 getContentPane().add(createServer)。 (false)。 pauseAndResume = new JButton(暂停 /继续 )。 (120, 0,120,22)。 getContentPane().add(pauseAndResume)。 (false)。 help = new JButton(帮助 )。 (240, 0,120,22)。 getContentPane().add(help)。 (false)。 exit = new JButton(退出 )。 (360, 0,120,22)。 getContentPane().add(exit)。 (false)。 setDefaultCloseOperation()。 setBounds(150, 130, 640, 590)。 setVisible(true)。 setResizable( false )。 model = new ServerModel(this)。基于java的坦克网战游戏的设计和实现(编辑修改稿)
相关推荐
JSP页面,而不影响内容的生成。 JSP 技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。 [10] 重庆邮电大学本科毕业设计(论文) 8 第二节 AJAX 原理 Ajax这个概念的最早提出者 Jesse James Garrett认为 :Ajax是 Asynchronous JavaScript and XML 的缩写。 Ajax
的返工。 现在绝大多数的中小型酒店、宾馆由于资金、人员等多方面原因不易 使用酒店管理类软件,全凭原始的手工记录管理,效率低、易出错;同时,市场上出现的各类酒店客房信息管理软件基本上都是为大型酒店专业设计的,有很多功能对于一般酒店、宾馆根本用不上。 更为关键的是这些酒店客房信息管理软件都是基于客户机 /服务器的,即使功能再强大,客人需要预订客房时都需自己亲自到酒店去预订或者是打电话到酒店预订
据库管理系同 Access, SQL Server, Oracle 等。 根据用户需求和业务流程,本 7 系统采用了 SQL Sever 2020 数据库 [6]。 对拟开发系统选用 SQL Server 2020 作为后台数据库。 数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。 数据库设计的好坏,直接影响到这个系统的运行效率。 良好的数据库设计
子和算法逻辑的。 开始玩家落子判定落子合法性判定游戏是否结束计算机落子判定游戏是否结束结束NNYYYN 图 事件驱动 游戏循环 7 C a n v a s画 布F I R C a n v a sF I R L o g i c逻 辑D o t棋 子F I R M I D l e t主 类M I D l e tA b o u t关 于 表 单A b o u t设 置 表 单图 类结构 游戏的流程
T、原始图像、内置 FFT、内置 IFFT。 输入界面 程序在 MATLAB 软件 M 文件中输入,输入完毕无误后,即可运行得出结果。 MATLAB 输入界面如图 41 所示: 图 41MATLAB输入界面 设计结果 编写程序使得实现对图片取灰度,并对灰度进行 FFT 及 IFFT 运算,得出相应的图片。 同时利用 MATLAB 软件系统内置的 FFT 及 IFFT 程序进行相应的运算。 在
体的瞬间立体目标的位置坐标 (X, Y, Z)用已确定的相距距离的已知参考点所发出的极其精确的无线电脉冲时钟源来测定,然后利用地面接收器中己存入的由高等解析几何所构成的模型,建立三维位置量和一个时间量的算法方程。 GPS 为全球用户提供了非常精确的三维定位坐标信息 速度信息、时间和频率参考,它以 4 个卫星射频信号的时间测量为基础,整个卫星系统平台由 21 颗工作卫星和 3 颗备用卫星组成