ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:415KB ,
资源ID:2161226      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2161226.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于java的坦克网战游戏的设计论文和实现-学位论文.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于java的坦克网战游戏的设计论文和实现-学位论文.doc

1、四川师范大学成都学院本科毕业设计基于Java的坦克网战游戏的设计和实现学生: 指导教师: 内容摘要:坦克游戏是一款众所周知的休闲游戏,在网络日益发达的今天,局域网游戏为上班一族在工作闲暇之际提供了很好的放松空间。Java语言简单易学,并且能够在所有的计算机上运行,所以越来越多的程序员用它编写游戏。而本文介绍了基于Java的坦克网战游戏的设计和实现,主要介绍了相关技术理论,系统总体设计,各功能设计以及游戏的实现。本游戏在Eclipse平台上开发调试,分为两大部分,即服务器端和客户端。服务器端建立主机,客户端通过连接主机IP地址进行联机,联机成功自动进入游戏。游戏过程中玩家通过键盘来控制坦克,可以

2、进行聊天,选择暂停,游戏结束玩家可以选择重玩,但需要另一玩家同意。关键词:Java 坦克 局域网 EclipseDesign and achievement of network Tanks based on JavaAbstract: Tanks is a well-known casual game. With the increasing development of the Internet, LAN-based game provide a good relax platform for those office workers to spend their leisure time

3、. A growing number of programmer choice to use Java language to program game because this kind of language is easy to learn and it can be operated on all the computers. This article is about the design and achievement of the Tanks which is based on Java ,and it mainly introduces some relevant techno

4、logical theories, the system integrated design, diverse function design and the games achievement. This game is developed and debugged on Eclipse platform, which contains Server-side and Client-side. The Server-side aims at building mainframe, and the Client-side through connecting mainframes IP add

5、ress to load game automatically. Players can control tank through keyboard and chat or suspend while playing the game. They can also choice to restart the game if another player permits.Keywords:Java Tanks network Eclipse目 录前言11了解java11.1Java语言的发展11.2Java技术理论11.3三种平台简介21.4Java程序开发过程21.4.1编写Java源文件31

6、.4.2编译Java源文件31.4.3运行Java程序31.5关于Eclipse32系统分析42.1可行性分析42.2游戏规则和系统功能介绍43总体设计53.1程序运行流程53.2总体构架54程序模块74.1主体模块74.2通信模块74.3坦克模块74.4子弹模块84.5墙模块84.6关卡模块85程序实现85.1游戏窗口界面设计95.2游戏控制125.3游戏网络通信135.4游戏元素155.4.1坦克155.4.2游戏墙185.4.3游戏中子弹和爆炸效果195.5游戏整体实现效果206结束语21参考文献22IV基于Java的坦克网战游戏的设计和实现前言在人们工作压力日益加大的今天,休息时间有限

7、使娱乐项目越来越少,为了让上班族疲惫的心灵得以休息,开发了可在局域网内联机玩耍的坦克游戏让人们放松一刻。本款游戏设计时,考虑到实际操作性,简化了游戏的操作,只要操作键盘上的方向控制坦克运动,键按住攻击键发射子弹就可以玩该游戏,轻松享受玩游戏的喜悦,可操作性好,弥补了单机游戏的自娱自乐的弊端,而且不会让玩家过分痴迷于该游戏,它的益智性让玩家头脑更灵活和它基于局域网可以增进同事同学之间的配合度,无论是学习还是工作都起到积极作用。Java语言越来越被程序员认可,无论是高校的计算机专业还是IT培训学校,都把Java作为主要的教学内容之一。本款游戏利用了Java语言的的面向对象,多平台运行,稳定和多线程

8、工作的优良特征在传统C+语言编写的坦克游戏基础上进行改编,让其具备相对简单的功能。本文通过对系统的需求分析,选择在Eclipse平台上开发调试。分为主机端和客户端,分别由十八个和十四个类组成。实现了局域网内联机游戏,玩家通过键盘进行相应控制。为了增加游戏的趣味性,本游戏设有辅助道具,游戏过程中玩家可以进行信息传递。设置九个循环关卡,玩家通关后,自动进入下一关卡,使游戏具有多样性让玩家享尽局域网所带来的乐趣。1 了解java1.1 Java语言的发展因为C+语言具有一定的复杂性,也不能实现跨平台运行,因此出现了基于C+语言开发设计的一种新语言,即Oak语言。Java语言便是从该语言的基础上升级,

9、并拥有了一定的优越性。Oak语言最先是用于家用电器,在家用电器程序设计过程中,它实现了对家用电子产品的有效控制和信息流通。后来程序开发人员有效的利用Oak语言编写了HotJava浏览器,从此Java语言步入了历史舞台。随着Java语言第一个开发包的发布,Java语言一步一步走向成熟,J2SE1.5的发布更是一个里程碑。现如今,越多的程序设计人员选择Java语言进行相关程序设计,不光是它具有跨平台,多线程和相对安全性,它的开源也是吸引众多程序员的一个重要因素。1.2 Java技术理论Java语言是一种简单、面向对象的、分布的、解释的、健壮的、安全的、体系结构中立、可移植的、高性能、多线程的以及动

10、态执行的程序设计语言,有以下特性:l 跨平台(体系结构中立),Java程序能够在网络上任何地方执行;完全统一的语言版本,实现平台无关性;字节代码与平台无关性;访问底层操作系统功能的扩展类库,不依赖于具体系统等1。l 安全性好,除了Java语言具有的许多安全特性以外,Java提供了字节码校验器、文件访问限制机制、类装载器和运行时内存布局四级安全保证机制1。l 面向对象,面向对象的技术是当今软件开发的主流技术之一。Java语言是一个彻底的纯面向对象的程序设计语言,它具有面向对象的封装、继承和多态三大特点1 。1.3 三种平台简介 目前Java运行平台主要分为下列3个版本: Java SE:称为Ja

11、va标准版或Java标准平台,Java SE提供了标准的JDK开发平台,利用该平台可以开发Java桌面应用程序和低端的服务器应用程序,也可以开发Java Applet程序1。Java EE:称为Java企业版或Java企业平台,可以构建企业级的服务应用,Java EE平台包含了Java SE平台,并增加了附加类库,以便支持目录管理、交易管理和企业级消息处理等功能1。Java ME:称为Java微型版或Java小型平台,Java ME是一种很小的Java运行环境,用于嵌入式的消费产品中,如移动电话、掌上电脑或其他无线设备等1。1.4 Java程序开发过程一个Java程序的开发过程主要由三个过程组

12、成:编写源文件,编译Java源文件,运行Java程序,如图如图1.4-1所示:字节码文件由Java解释器执行由浏览器执行源文件:文件名.javaJava编译器:javacJava应用程序Java小应用程序图 1.4-1 Java程序开发过程图1.4.1 编写Java源文件源文件是由若干个类组成,编程人员使用Java语言编写好源代码,形成源文件。文件名的后缀为.java。可以使用文本编辑器,如Edit或记事本来编写源文件。不可使用Word编辑器,因为它含有不可见字符。源文件在命名时有一定规则,如果源文件中有多个类,那么只能一个类是public类,如果一个类是public类,那么源文件的名字必须与

13、这个类的名字完全相同1。1.4.2 编译Java源文件编译Java源文件:当创建源文件后,使用Java编译器来编译Java源文件,生成一种二进制的中间码,称为字节码(byte code),形成字节码文件。文件名的后缀为.class。如果源文件进行了修改,那么必须重新编译,在生成新的字节码文件1。1.4.3 运行Java程序运行Java程序:使用Java虚拟机中的Java解释器来解释执行编译生成的字节码,完成Java程序要实现的功能,Java应用程序总是从主类main方法开始执行1。1.5 关于Eclipse Eclipse是跨平台的自由与集成的开发环境。起初主要用于Java语言的开发,但目前也

14、有人利用插件将它用作其他计算机语言比如C+和Python的开发工具。Eclipse的原身仅是一个框架平台,但是越来越多插件的支持让Eclipse拥有其他功能相对稳定的IDE软件很难拥有灵活性。所以现在,许多程序员将Eclipse作为框架开发属于自己的IDE。Eclipse 最初由OTI及IBM两家公司的IDE产品开发团队共同开发。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。现在由IBM带领,围绕关于它的项目已发展成了一个庞大的Eclipse联盟,现目前有百余家软件公司和大量程序开发员参与到此项目中,其中包括Borland、Rational Software

15、、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是Visual Age for Java的替代品,其界面与以前的Visual Age for Java差不多,但因为其开源,每个人都可以免费获取,以便程序开发人员在此源码的基础上进行创意修改开发出自己需要的产品,所以越来越多的开发公司和团队选择它。最近包括Oracle等许多大型程序开发公司相继研究该项目,经过一段时间的开发研究,他们一致认为Eclipse将来会形成可以进行多种语言开发的IDE集合体,使用者只需下载各种语言的插件即可。2 系统分析2.1 可行性分析本款游戏的设计和开发是在C+语言开发的传统坦克游戏基础上进行

16、改编,要实现它的相应基本功能。分析研究传统坦克游戏得知,本款游戏要实现的功能主要主窗口的实现以及相应功能按键的功能实现,画出坦克,可以控制键盘让坦克移动,可以发射子弹,坦克被子弹击中消失并产生爆炸效果,防止坦克重叠运动等。研究课题设计要求得知,需要实现局域网联网功能。在选择开发语言的时候,需要考虑到开发目标。然而本次设计的目的完全可以由Java语言来实现。因为Java语言具有面向对象的特性,可以很好的将游戏中各个元素进行封装管理,降低开发难度。游戏运行过程不是单一过程,是多态同时进行,然而Java具有多线程的特性,这样恰恰满足了开发的需要,所以选择Java语言进行开发是不二的选择。在玩家进行娱

17、乐的时候,美观的界面是必不可少的,为了增强观赏性,可能在设计过程中需要从外部载入图片。玩家坦克可以通过监听玩家键盘响应事件控制。对于敌方坦克,在设计游戏过程中要考虑到不能同时出现太多,还能让敌方坦克自主进行移动和向目标开火。以此同时,因为敌方坦克是自主随机移动,需要考虑到坦克与坦克之间不能相互重叠和穿越,也不能同时做同意动作。那么利用Java语言的多线程能保证坦克有序运行。与传统单机坦克游戏不同,本款游戏需要实现局域网通信。然而通Java语言中有套接字 Socket实现通信功能。综合以上分析可以得出,利用Java语言的各种优越特性能够实现本次设计的总体要求,也能实现相应功能。2.2 游戏规则和

18、系统功能介绍在本款游戏中,玩家坦克受玩家键盘向东南西北方向移动,并由玩家控制开火键对目标进行打击,玩家双方坦克免受对方火力攻击。敌方坦克随机运动,并发射子弹。游戏中,坦克和子弹能够击毁普通砖墙,但不能击穿钢墙,坦克能够穿越草丛不能穿越河流,子弹能够穿越河流和草丛。游戏过程中,玩家除了保证自己免受伤害同时也要保障基地安全,玩家消灭敌方闪烁坦克可以获得额外辅助道具,两玩家在游戏过程中可以聊天,也可以请求暂停。每个关卡设置二十个敌方坦克,当坦克完全被消灭后,进入下一关卡,当玩家基地被毁或双方玩家生命耗尽,游戏结束,玩家可以选择重玩,但需要双方做出一致选择。3 总体设计3.1 程序运行流程本游戏程序运

19、行需要玩家双方在局域网内建立通信,也可在同一电脑上建立通信,但只能操作一个玩家。具体运行流程如图3.1-1所示:开始服务器建立主机建立成功客服端连接主机运行服务器运行客服端连接成功游戏结束载入游戏结束重玩游戏否是否是是否图 3.1-1 程序运行流程如图3.2 总体构架本游戏在设计过程中,为了降低设计难度,将整个程序按模块进行单独编写,包括主类、通信类、坦克类、子弹类、墙类、辅助类、服务器类、客服端类、敌人坦克类、关卡类以及时钟类。各个类和实现的功能表如表3.2-1所示:表3.2-1 各个类和实现的功能表类实现功能主类实现游戏窗口的显示提供公共接口通信类实现玩家间建立游戏使玩家间可以进行信息交流

20、坦克类添加坦克图片控制坦克移动让坦克可以发出子弹让玩家坦克死亡后重置使坦克不能穿墙和其他坦克使坦克可以穿草丛不能穿河子弹类画出子弹控制子弹让普通子弹可以击毁普通砖墙不能击毁钢墙让子弹可以穿越草丛和河流墙类添加砖墙图片添加钢墙图片添加草丛图片添加河流图片显示图片辅助类添加辅助图片敌方闪烁坦克阵亡后随机显示辅助图片玩家获得辅助图片后得到相应辅助功能服务器类建立主机控制游戏进程客服端类输入主机IP连接主机控制游戏进程关卡类添加墙类图片并进行排版编辑显示添加图片时钟类刷新线程对玩家事件进行监听控制游戏运行与休眠4 程序模块本游戏程序由多个模块同时运行而实现,也体现了Java语言的优越性。通过各个模块的

21、相互调用,它能完成游戏显示,通信建立,控制进程等一系列操作,使游戏规范化,易于操作。4.1 主体模块主体模块首先构建接口, 因为Java不支持多继承性,即一个类只能有一个父类。单继承性使得Java简单,易于管理程序。为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口。使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口的声明和接口体。其次是画出游戏面板和游戏窗口的显示,在游戏窗口中添加了几个功能按键,主要进行联机操作,游戏进程操作等。游戏过程中,游戏版面显示当前关卡数,敌人剩余数,玩家生命数以及玩家获得的分数。4.2 通信模块通信模块通过Java语言中

22、套接字 Socket编写通信类,针对游戏中客户端和服务器的联机功能的实现,它的通信过程是基于TCP/IP协议中传输层接口socket实现。通过通信模块玩家可以进行信息传递以便协同作战,为本游戏添加乐趣。4.3 坦克模块坦克模块部分主要由玩家坦克和敌人坦克组成,敌方坦克随机出现,并随机移动,玩家通过键盘操作来控制坦克的移动和对敌方坦克进行攻击。玩家坦克可以对敌方闪烁坦克进行攻击,并得到额外辅助道具,获得道具后玩家坦克具备相应功能。敌方坦克由游戏窗口上方按照左中右依次出现,敌方在移动过程中随机发出子弹,如遇见障碍则随机改变运动方向。玩家在第一关卡时,最多同时出现三辆敌方坦克,随着游戏的进行敌方坦克

23、数量随之增加且敌方坦克运动速度加快,和经典单机坦克游戏十分相似,将玩家带入童年回忆。4.4 子弹模块在该模块中,初始玩家一次只能发射一颗子弹,且只对敌方坦克和普通砖墙有效,当子弹消失后才能接着发射。子弹击毁时出现爆炸效果,玩家子弹和敌方坦克发出的子弹可以撞毁,敌方坦克向四个方向随机移动并发射子弹。游戏工程中玩家获得相应辅助道具后,子弹速度加快且可以进行连续射击。4.5 墙模块墙模块是由四个类共同组成,包括砖墙、钢墙、草丛和河流。通过这四个类的组合,编辑成游戏地图。游戏地图中,玩家基地周围是由砖墙包围,在墙模块中,砖墙是最基本的组成,玩家或敌方坦克都能将其摧毁,钢墙只有玩家获得特殊辅助后才能摧毁

24、,玩家和敌方发出的子弹都能穿越草丛和河流。4.6 关卡模块为了增加游戏的趣味性,游戏中设计了九个循环关卡。在游戏过程中,玩家双方各有3条生命,当玩家双方均把生命耗尽时,通关失败,只有双方选择重玩时才重新开始游戏。在关卡进行时,任一玩家可以选择暂停游戏,在每个关卡中设置了玩家基地,当玩家基地被毁,则通关失败。每个关卡设计20辆敌方坦克,当敌方坦克均被消灭,游戏自动进入下一关卡。游戏玩家具体游戏流程如图4.6-1所示:载入游戏开始失败重玩结束进入下一关是否否是图4.6-1 玩家游戏流程图5 程序实现5.1 游戏窗口界面设计游戏窗口使用Frame类,Frame类是Container类的间接子类。当需

25、要一个窗口时,可使用Frame或其子类创建一个对象。窗口也是一个容器,可以向窗口添加组件。该游戏界面包括文本输入框和按钮,因为服务器端和客户端窗口相似,以下提供客服端游戏窗口设计代码:public class ServerView extends JFramepublic drawingPanel mainPanel;public JButton createServer, exit, pauseAndResume, help, hiddenButton;public JTextField messageField;public JButton sendMessage;public Serve

26、rControler controler;public ServerModel model;public ServerView()super(基于Java的坦克网战游戏);try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception e) getContentPane().setLayout(null);mainPanel = new drawingPanel();mainPanel.setLayout(null);mainPanel.setBounds(0, 22, 679,

27、605);mainPanel.setBackground(new Color(128, 64, 128); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(150, 130, 640, 590); setVisible(true); setResizable( false );model = new ServerModel(this);controler = new ServerControler(this, model);/* * 添加按键和文本框并实现相应功能 */messageField = new JTextField(

28、);messageField.setBounds(0,519, 560,22);messageField.setEnabled(false);sendMessage = new JButton(发送);sendMessage.setBounds(570,518, 62,24);sendMessage.setFocusable(false);mainPanel.add(messageField);mainPanel.add(sendMessage);getContentPane().add(mainPanel);mainPanel.setFocusable(true);createServer

29、= new JButton(建立主机);createServer.setBounds(0, 0,120,22);getContentPane().add(createServer);createServer.setFocusable(false);pauseAndResume = new JButton(暂停/继续);pauseAndResume.setBounds(120, 0,120,22);getContentPane().add(pauseAndResume);pauseAndResume.setFocusable(false);help = new JButton(帮助);help.

30、setBounds(240, 0,120,22);getContentPane().add(help);help.setFocusable(false);exit = new JButton(退出);exit.setBounds(360, 0,120,22);getContentPane().add(exit);exit.setFocusable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(150, 130, 640, 590); setVisible(true); setResizable( false );

31、model = new ServerModel(this);controler = new ServerControler(this, model);public static void main(String args)new ServerView();游戏运行界面使用JPanel创建一个面板,再向这个面板添加组件。主要分为游戏界面和玩家信息界面,如图5.1-1所示:游戏按键和文本框区域玩家得分玩家生命游戏界面游戏进度聊天信息编写区域图5.1-1 游戏运行界面图游戏界面显示游戏实时画面,玩家信息界面主要显示玩家生命值,玩家得分情况,关卡进读,和剩余敌方坦克数量。部分代码如下:public c

32、lass drawingPanel extends JPanelpublic Image offScreenImage;public String messageQueue;public Actor drawingList;public boolean gameStarted;public int green, red, blue;public int P1Life, P2Life, P1Score, P2Score, EnemyLeft, LevelIndex;public Image P1Image, P2Image;5.2 游戏控制这款游戏设计过程中,主要使用键盘进行操作,为了让玩家对坦

33、克进行有效操作,游戏程序窗口添加KeyListener(键盘监听器)。事件源描述事件对象中事件的性质。玩家的每个操作将产生一个事件源对应一个或多个事件监听器,当发生事件就将调用相关事件监听器。此后事件源便将该事件对象发送给相应监听器接口类的方法,监听器接口则会接收到相应的事件信息。此时监听器开始分析事件对象并找出事件内容,然后作出相应反应 。在java.awt.event 包中定义的接口可以用来创建监听器。只有在事件发生时,监视器定义的方法才会被事件源所调用。有兴趣接收事件的任何监听器类都必须实现监听器接口。代码如下:/* * 移动按键键盘监听器 */temp.addKeyListener(

34、new KeyAdapter()public void keyPressed(KeyEvent e)if(model.P1 != null)if(e.getKeyCode() = KeyEvent.VK_UP)model.P1.moveUp = true;model.P1.moveDown = false;model.P1.moveLeft = false;model.P1.moveRight = false;if(e.getKeyCode() = KeyEvent.VK_DOWN )model.P1.moveDown = true;model.P1.moveUp = false;model.

35、P1.moveLeft = false;model.P1.moveRight = false;if(e.getKeyCode() = KeyEvent.VK_LEFT )model.P1.moveLeft = true;model.P1.moveUp = false;model.P1.moveDown = false;model.P1.moveRight = false;if(e.getKeyCode() = KeyEvent.VK_RIGHT )model.P1.moveLeft = false;model.P1.moveUp = false;model.P1.moveDown = fals

36、e;model.P1.moveRight = true;5.3 游戏网络通信在JAVA语言中,利用TCP通信,通常有一个明确的服务器端(Server端),一个或多个客户端(Client端)。分别使用ServerSocket类建立一个服务器端标识,负责监听客户端的连接请求。使用Socket类建立服务器端与客户端一对通信实体标识。套接字通常由三个部分构成:在计算机进程之间利用TCP/IP进行通信时,需要通过IP地址来定位通信双方的计算机,通过TCP/UDP来明确通信软件所采用的通信协议,通过端口号来确定通信软件进程。所以,通信协议、网络地址和端口号三个部分组合在一起可确定通信实体,表达方法为:SO

37、CKET=(TCP/UDP, IP Address,Port)本游戏程序通过套接字实现了服务器端主机建立后响应客户端的连接请求,在游戏进行时,获得对方玩家实时画面,任意一方暂停或继续游戏,以及联机成功后玩家双方的信息传递等功能,具体代码如下:/* * 服务器建立主机 */public void createServer() addMessage(正在建立主机(端口4321); try serverSocket = new ServerSocket(4321); serverCreated = true; catch (Exception e) addMessage(无法建立主机,请确认端口43

38、21没有被别的程序使用);System.out.println(e);t.stop();return; /* * 客户端连接主机 */public void connectServer()addMessage(正在连接主机);try serverIP = view.IPfield.getText(); InetAddress addr = InetAddress.getByName(serverIP);clientSocket = new Socket(addr, 4321);serverConnected = true;addMessage(已成功连接到主机,开始载入游戏);以上就是游戏中玩

39、家建立主机和连接主机的实现过程。在本款游戏中,玩家建立通信后还可以进行信息共享和消息传递功能。代码如下:if(perInstruction.substring(0,1).equals(m)gameModel.addMessage(主机端玩家说: + perInstruction.substring(1,perInstruction.length();以上是玩家游戏过程中聊天通信实现的部分代码。if(perInstruction.substring(0,1).equals(x)int temp = Integer.parseInt(perInstruction.substring(1,2);if

40、(temp = 0)if(gameModel.gamePaused)gameModel.addMessage(主机端玩家取消了暂停);gameModel.gamePaused = false;elseif(!gameModel.gamePaused)gameModel.addMessage(主机端玩家暂停了游戏);gameModel.gamePaused = true;以上是玩家在游戏过程中对游戏进程的信息共享功能部分代码。5.4 游戏元素本款游戏在设计时避免了图形绘制的麻烦,更多的采用了直接引入外部图片来作为游戏中的元素,如坦克和游戏墙。这大大的减少了游戏设计时的繁琐更多的节省时间。5.4.

41、1 坦克在游戏设计过程中,游戏中坦克采用载入已经排好顺序的外部图片的方式来实现,如图5.4.1-1所示:图5.4.1-1 游戏中外部载入坦克图在实现坦克向四个方向移动时,采用的是朝向不同的四张图片。在游戏过程中,玩家坦克如果获得辅助道具,坦克将具备辅助功能,如穿墙和连发子弹等。游戏开始时,玩家坦克有免疫攻击时间,玩家坦克朝上,只具备初级攻击力,通过以下代码实现:direction = UP;status = 1;health = 1;numberOfBullet = 1;InvulnerableTime = 150;if(type.equals( 1P)xPos = 198;yPos = 49

42、8;border = new Rectangle(xPos - size, yPos - size, 25, 25);xVPos = xPos; yVPos = yPos;for(int i = 0; i 4; i +)texturesi = gameModel.textures54+i;elsexPos = 323;yPos = 498;border = new Rectangle(xPos - size, yPos - size, 25, 25);xVPos = xPos; yVPos = yPos;for(int i = 0; i 4; i +)texturesi = gameModel

43、.textures72+i;在游戏过程中,玩家获得相应辅助后会有战力提升,根据坦克攻击力大小,载入不同的坦克图片,提升画面效果,部分代码如下:int textureIndex = 0;if(type.equals(1P)if(status = 1)textureIndex = 54 + direction;else if (status = 2)textureIndex = 58 + direction;else if(status = 3)textureIndex = 62 + direction;elsetextureIndex = 66 + direction;elseif(status

44、 = 1)textureIndex = 72 + direction;else if (status = 2)textureIndex = 76 + direction;else if(status = 3)textureIndex = 80 + direction;elsetextureIndex = 84 + direction;游戏中敌方坦克有不同类型,在游戏过程中,敌方坦克将由左中右三个方向同时出现,在移动过程中会发射子弹,当遇见阻挡时会随机改变运动方向,其部分代码如下:interval = (int)(Math.random()*200);direction = (int)(Math.random()*4);numberOfBullet = 1;xVPos = xPos;yVPos = yPos;border = new Rectangle(xPos - size,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服