[坦克大战项目.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[坦克大战项目

坦克大战项目分组说明 项目结构说明 项目分12个类,分别为: 服务器 TankServer 1 1人 服务器线程 ServerThread 3 服务器代理线程 ServerAgentThread 3 重绘线程 PaintThread 4 客户端 TankClient 4 1人 客户端线程 ClientThread 5 客户端代理线程 ClientAgentThread 5 作战地图 WarMap 6 坦克 Tank 6 子弹 Bullet 7 服务端坦克战斗控制 ServerWar 8 1人 客户端坦克战斗控制 ClientWar 9 1人 各个类的功能说明 服务器 TankServer 可能用到的方法: ServerWar类中的 构造方法:public ServerWar(TankServer father) 启动游戏方法:public void setStart(boolean start) true为开始,false为停止 初始化坦克方法:public void initialTank() 设置主坦克炮口方向的方法:public void setHostDir(int direction) 1,2,3,4分别表示上下左右 主坦克移动的方法:public void hostMove() ServerThread类的构造方法: public ServerThread (TankServer father,ServerSocket ss) 可能用到的对象: 服务器代理线程 ServerAgentThread的对象 服务器代理线程 ServerAgentThread类中的输出流对象 服务器类中需要实现以下功能: 有main方法,使其可以运行 继承JFrame,通过构造方法创建一个窗体。 窗体标题为TankWar—Server,图标为默认图标ico.gif,居中显示,大小不可变。窗体用分隔条分为两部分,左侧为主面板ServerWar(别人提供),右侧为操作面板(自己写),主面板为获取焦点状态。 右侧操作面板上有端口号的标签和文本框(默认值9999)、昵称的标签和文本框(默认值Player2)、建主按钮、开始按钮、停止按钮。开始按钮和停止按钮初始状态为不可用。 添加监听功能。 窗体: 当单击窗口的关闭按钮时,如果没有客户端连接,即服务器线程未启动,退出程序。如果客户端已经连接成功,即服务器代理线程已运行,则通过服务代理线程的的输出流发出离开消息,关闭代理线程,服务线程和连接后退出程序。 右侧面板中: 建主按钮按下前,端口号和昵称可输入,开始和停止按钮不可用。根据端口号创建TCP连接,如果输入的端口号不是数字,弹出错误提示框,如果输入的数字不在0~65535之间,弹出错误提示框。以本类对象和TCP连接为参数,调用ServerThread类的构造方法创建服务器线程。如果创建成功,启动线程并弹出提示框,不成功弹出提示框。建主成功后,端口号和昵称不能更改,停止按钮可用,开始按钮不可用,等待客户端连接。 客户端连接成功后,服务器代理线程会被新建并启动,开始按钮被置为可用状态。此时,按下开始按钮后,通过代理线程ServerAgentThread类中的输出流,向客户端发送开始消息。调用Server类中的setStart方法开始游戏,并将开始按钮设置为无效状态。 当服务器代理线程未启动时,按下停止按钮,终止服务器线程并关闭连接,各按钮恢复到初始状态,调用ServerWar类中的方法,停止游戏并初始化主机坦克。如果服务器代理线程正在运行,则还要通过服务器代理线程的输出流发出服务端离开的消息。 操作面板无事件时,主面板一直为焦点获取状态。 左侧主面板: 主面板一直处于焦点获取状态。当空格键处于按下状体时,调用ServerWar类中的方法发射子弹。当方向键第一次按下时,调用ServerWar中的方法改变主坦克的炮口方向,处于按下状态时,调用ServerWar中的方法移动坦克。 服务器线程 ServerThread 服务器线程类需要实现以下功能: 有以服务器类对象和TCP连接作为参数的构造方法 在其它类中能够控制线程的启动启动和停止,并能获取客户端是否已连接 线程启动后,等待客户端连接,有客户端连接时,为其分配一个代理线程并传递给服务器。如果客户端已经连接,延时监测。 服务器代理线程 ServerAgentThread 服务器代理线程类需要实现以下功能: 可能用到的方法: ServerWar类中的: 更新副坦克位置的方法 public void updateClient(int direc

文档评论(0)

tiantiande + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档