基于Java的坦克大战游戏的毕业论文

本文详细描述了一款基于Java的坦克大战游戏的设计与实现过程,涉及系统分析、功能设计、服务器与客户端架构,使用Eclipse和Socket技术,强调了逻辑设计、用户界面、多线程处理和跨平台特性。
摘要由CSDN通过智能技术生成

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

摘要:随着人们对生活质量的要求一天比一天高,为了让人们更好地开掘自身的智慧,游戏就此进入了大众的视野,在人们的生活中有着重要的位置,已然变得必不可少。游戏产业推动高新技术不断升级,极大地促进了经济的增长,推动了“第四产业”的经济腾飞。坦克大战游戏是童年时期经常玩的经典游戏,我们对它都十分了解。游戏通过分析JAVA游戏开发和代码设计,用Eclipse软件开发了坦克大战游戏,运用接口技术,使一个类能够实现多个接口,使用套接字Socket来完成client端和server端的连接。玩家通过连接访问进入游戏,通过操纵坦克来守卫基地,玩家还可以获得超级武器来提升坦克的属性,摧毁全部敌方坦克来取得胜利,操作非常简单,还具有非常高的普遍率,适合所有人群玩。该游戏既满足了人们的个性化需求,也让玩家在游戏过程中丢掉烦恼,尽情地释放压力。

关键词:Java 坦克大战游戏 Socket

1.引言

随着社会和时代的进步,来自各个方面的压力让人没精打采,为了分解人们的压力,休养那变得疲顿的头脑和劳累的身心,特设计了坦克大战小游戏,游戏操作非常容易,只要将手指放在键盘上敲击相关的游戏键就可以玩,在玩游戏的过程中能够体验现实生活中没有的快乐,既有利于身心健康,又不会影响工作和学习。本游戏采用的是基于J2SE标准平台的java编程技术,在Windows 7操作系统中使用Eclipse软件进行代码编译,通过方法Graphics()来进行游戏地图界面的绘制,使用了接口技术使一个类能够实现多个接口,使用套接字Socket来完成client端和server端的连接。

Java是一项面向对象编程语言,既包含了C语言的全部优点,又具有面向对象,跨平台性,安全性等特点,是现在程序设计中较为常用的编程语言。Java具备了“一次编译,处处运行”的特点,很好的体现了其跨平台性和面向对象的特点,允许程序员用感性的思路来进行繁杂的编程。

Eclipse是一个基于java的开放源代码的可扩展开发平台,是知名的跨平台的自由集成开发环境(IDE)Eclipse是一个基于,还捎带了一个标准规范的插件集,包含了Java开发工具(JDK),Eclipse因为安装不同的插件,所以它支持不同的计算机语言,主要用来Java语言开发。

Graphics类是软件包java.awt(其全部类都用来用户界面的创建和图形图像的绘制)下的类,它同意一个应用程序绘制到组件,以及在屏幕图像上进行绘制。Graphics 对象封装了 Java 支持的基本呈现操作所需的状态信息。Graphics()方法构造了一个新的 Graphics 对象, 由于 Graphics类是抽象类,因此Graphics()方法不可以被直接调用,此构造方法是图形上下文的默认构造方法,通过在组件上调用 getGraphics() 来创建图形上下文,或者从其他图形上下文获取。 

2.系统分析

2.1 需求和技术分析

如今的游戏已经成为世界上最大的娱乐休闲项目之一,游戏市场规模持续增长,潜力巨大,我国政府一向以来都特别鼓励游戏产业的发展,特别是我国当地的游戏产业,扶持力度连年加大,由此可见,我国对游戏产业的重视程度。该坦克大战游戏是对红白机经典90坦克大战的延续,对于80后,90后来说,都是童年里最宝贵的回忆,而80后,90后恰好占据着当今游戏人群的主体,对于他们来说,该坦克大战游戏不仅可以减轻人们的社会压力,放松身心,也可以回味小时候玩红白机游戏的疯狂时光,又不会沉迷于游戏,老少咸宜,能够更好地体验游戏的乐趣。

该程序代码有着贼高的运用率,因此,设计时必须要有相当缜密的逻辑条理思维,还要考虑一些无法操控的因素和所有可能出现的突发事件。

(1)玩家能够通过敲击游戏键来操纵玩家坦克的动作,但对于敌方坦克来说,就要有第一定的自主性和智能型,因为是自动运行。同时,屏幕上的敌方坦克需要开创一个线程让其自主运行来应对数量过多而导致的混乱。要精密设置敌方坦克的操作运行算法,不要使游戏太过单一。

(2)要对所有坦克打出的子弹进行实时监测并判断它打到了什么物体对象,因此需要开辟一个独立的线程来处理子弹,还需要控制好所有的物体对象。在同一时候,在JVM虚拟机上保持运行这么多的线程,可能会造成程序的迟钝,甚至瘫痪。

(3)由于游戏界面中物体对象繁多,为了避免重叠运行,玩家坦克在前进时需要时刻地扫描周围环境。  

(4)游戏的动态画面是一个优秀程序不可缺少的组成成分,精美的用户界面是引起玩家兴趣的关键,相关的构图美化技术也需要有所考虑。

(5)在游戏地图中会有许多各种不同的物体对象,这不是绘图方法能够解决的,而且过多的大型photo会束缚程序的大小,所以要准确掌握Graphcis()方法的使用。同时使用读取外部文件的方法来加载游戏关卡,因为内存有限,不适合用于存储地图关卡。

(6)游戏要对玩家的分数进行记录,这就需要对其功能和属性进行妥善的策划,还需要制作良好的解决方案来处理其存储方式。

(7)为了确保游戏程序的运行顺畅,需要对结构进行严格把控,将算法完善得更精准,还可以运用混淆器对打包后的软件程序进行优化。

2.2 功能分析

该坦克大战选择使用以往的游戏规矩。服务器端创建并设置一个主机,客户端申请连接加入,若其IP输入判断无误,载入地图关卡并开始游戏,在游戏界面中,会实时显示敌方坦克数量和玩家坦克的生命数量及分数。敌方坦克自行移动和打出子弹,玩家通过敲击键盘来操控自己坦克的动作并打出子弹,子弹无法打中相同阵营的坦克,当两方阵营的子弹相交时会相互抵消,打中对方坦克时会产生爆炸效果,中途可以暂停、发送信息,玩家坦克吃掉超级武器后会赋予其特殊的功能,在游戏地图界面中还同时游戏中还包含了通信功能。如果取得了胜利,会显示“你过关了!”,如果失败了,则系统给出“GAME OEVR!还想再玩一次吗?(y/n)”的提示,如果玩家双方都选择继续游戏,则游戏重新加载并开始,不然结束并退出游戏界面。

3.总体设计

3.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类负责创建关卡。如表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所示。

毕业设计下载地址

基于java的网络版坦克大战游戏系统毕业设计(项目报告+答辩PPT+源代码+数据库+部署视频)
☞☞☞点击查看项目整体介绍 https://download.csdn.net/download/dwf1354046363/87813617

更有100多毕业设计项目供你挑选:Java毕业设计174例,包含部署视频-CSDN博客文章浏览阅读3.5w次,点赞78次,收藏887次。基于Java的毕业设计,包含部署视频,一步一步教你加载数据库,运行,功能演示_java毕业设计https://blog.csdn.net/dwf1354046363/article/details/124463185

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
J2SE ( Java 2 Standard Edition)就是Java2的标准版,主要用于桌面应用软件的编程,是伴随着计算机技术的飞速发展而诞生的一项新的开发技术。随着个人电脑的日益普及、Java功能在个人电脑上的实现,Java应用程序产生的单机增值服务逐渐体现出其影响力,对丰富人们的生活内容、愉悦身心、开发智力等起着不可忽视的作用。而随着网络的普及,信息技术的发展,电子竞技也以一种正规的行业逐步走进了人们的生活,特别是对年轻的一代,游戏更是娱乐项目中不可缺少的一种,玩游戏是一种娱乐,其实开发游戏更会使人乐在其中。 局域网坦克大战采用MyEclipse平台开发调试。玩家坦克的运行是通过键盘响应事件控制,敌方坦克则是自动运行并具有了一定的智能性。程序进行了精简和优化,游戏运行流畅,具有一定的吸引力。 论文通过总结和分析JAVA游戏的开发流程和代码框架的设计,开发了一款基于J2SE架构的游戏——局域网坦克大战,该游戏主要分为场景类、子弹类、坦克类、敌方坦克类、我方坦克类等几个类,能够实现敌方坦克和子弹的智能化运行等,具有一定的复杂性和可玩性。 题目:基于J2SE的局域网坦克大战设计与实现 运行平台要求: 1 首先电脑里按有JDK,然后安装MyEclipse。如果没有MyEclipse,只安装JDK也可以。 2 电脑系统Wxp,W7都可以,最好是Wxp 导入工程步骤和运行程序: 1 先讲解用JDK如何运行 (1)找到tank_java里的src文件夹,把src文件夹放到硬盘里,例如是D盘。 (2)开始->运行->cmd->输入d: ->cd src ->cd wyf ->cd cgq ->javac TankServer.java->java TankServer (3)开始->运行->cmd->输入d: ->cd src ->cd wyf ->cd cgq ->javac ClientServer.java->java ClientServer (4)输入用户名和IP等即可游戏。 2 用MyEclipse如何运行 (1)打开Myeclipse->File->import->General->Existing Projects into Workspace->选中Select root directory->单击右边的Browse ->找到Tank_Java,选中,确定->Finish (2)找到src打开->wyf.cgq->鼠标右键TankServer.java->Run As->Java Application (3)找到src打开->wyf.cgq->鼠标右键ClientServer.java->Run As->Java Application (4)输入用户名和IP等即可游戏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易小侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值