Java练手项目2:基于Java的坦克大战游戏(学习Java必备!!!)

Java游戏实现》:坦克大战 Java游戏实现》:坦克大战前面写了一个简单的聊天小程序,今天开始就写一个坦克大战游戏,算是对Java相关小知识点的一个应用。这个游戏的完成,我们也是分步完成,逐步累加,一个一个小功能的添加,最后直至完成整个游戏的开发。第一步:写一个界面 public class TankClient extends JFrame{ public static void main(Stri 阅读详情

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

创建和设置服务器端界面窗口

JAVA 实现《坦克大战联机版》游戏 坦克大战联机版 阅读详情

相关推荐

韩顺平--Java坦克大战

韩顺平坦克大战

闲言 1万+

Java坦克大战游戏源代码

Java坦克大战游戏源代码 关于项目 Java中的坦克大战游戏是一款简单的多人游戏对战游戏。这个游戏和之前的游戏很相似。本系统是在Eclipse IDE中制作的。此外,您需要在计算机上安装 JDK 和 JRE 才能运行它。这是一个简单而有趣的游戏

Unity有哪些适合拿来练手游戏项目

首先推荐一篇文章,其中涵盖海量Unity和C#的书籍、demo等海量干货。文章链接:Unity 高级程序员应该具备怎样的能力?要怎样成长为 Unity 高级程序员?Unity有哪些适合练手游戏项目?还是老规矩,全文无付费无套路,Unity学习路线初级实践版来咯~

SiKi学院的博客 5761

Java实现的坦克大战游戏

基于Java坦克大战单机版,后续可能会发上来网络版,坦克使用代码实现,有自己的注释。

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

游戏由服务器端和客户端两部分组成。 在服务器端,ServerModel类主要用来创建主机,ServerView类主要负责服务器端图形界面的面板信息的设置,ServerControler类处理来自服务器视图框架的输入,包括创立通信与帮助信息等,enemy类主要负责敌方坦克创建,player类主要用来设置玩家的得分及其显示位置等信息,drawingPanel类主要负责服务器端界面窗口的创建和设置,......

知识极客 3584

java实现坦克大战

话不多说,直接上思维导图(比较粗略) 目录 ​窗口初始化 游戏父类的编写 添加坦克类 初始化子弹类 添加围墙、基地 添加游戏规则 窗口初始化 准备工作 首先创建一个TankWar项目,在scr相同路径下创建images、music文件夹,将需要使用的图片、音乐分别放在images、music中。创建一个com.tankwar(包),注意命名规范 窗口初始化 在com.tankwar中创建GamePanel类 import javax.swing.JFrame; public

小熙的博客 2万+

JAVA毕设|课设】基于JAVA坦克大战游戏|入门级小游戏|文末附官网下载地址|源码100%可运行!!

项目是基于JAVA SWING以及Maven构建的入门级坦克大战游戏,支持单人模式、双人对打模式以及通过广度优先算法实现的AI坦克寻路功能。

是云猿实战 1260

Java实现坦克大战游戏

Java实现坦克大战 主要内容 使用Java面向对象思想设计开发一个有GUI界面的小游戏坦克大战,允许玩家与电脑玩家进行对战,玩家使用键盘操控坦克,人机具有一定的移动和开火逻辑。 实现功能 1.有游戏图像界面,让玩家能看到游戏给出反馈; 2.有人机交互功能,完成能操控指定游戏元素; 3.不同阵营的坦克,具备不同外观,可分别敌我; 4.敌我坦克皆能移动和开关。 游戏界面 主菜单 游戏界面 项目结构 app包下的GameMain类是游戏的入口函数。img目录下存放游戏的静态资源。 tank包 该包下的类

Java是最好喝的咖啡的博客 8554

JAVA项目坦克大战游戏练习

java 坦克代码,包含图片等资源,可用,无问题。..........................

Java游戏实现》:坦克大战(续三)

Java游戏实现》:坦克大战(续三)相关博文:《Java游戏实现》:坦克大战http://blog.csdn.net/u010412719/article/details/51712663《Java游戏实现》:坦克大战(续一):http://blog.csdn.net/u010412719/article/details/51723570《Java游戏实现》:坦克大战(续二):http:/

wojiushimogui的博客 5965

Java游戏开发 —— 坦克大战

坦克大战,所有坦克、砖墙等效果都是用Java自己画的,当然各种图片素材也包含在里面,但没用。

小木鱼的博客 1万+

Java游戏实现》:坦克大战(续一)

Java游戏实现》:坦克大战(续一)上篇博文(http://blog.csdn.net/u010412719/article/details/51712663)只介绍到了能够控制一个坦克在4个方向上移动就结束了,今天就在此基础上继续完成一个一个的小功能。完成的功能:根据键盘的按键控制一个坦克在8个方向上移动要完成这个功能,我们要做一下几个事情1、记录下键盘的按键情况,即要重写键盘按下和抬起的监听

wojiushimogui的博客 7864

基于JavaSwing坦克大战游戏的设计和实现

还记得传说中的经典90坦克大战吗?那些怀旧的记忆,伴随着我们一起走过来的经典坦克大战,刚开始那战战兢兢,屡屡被敌人坦克击毁的情景历历在目。现在好了,再也不用担心敌人坦克了,可以横冲直撞,横扫敌人坦克了。作为程序员的我刚好可以利用所学的Java相关知识来完成一个坦克大战游戏、一起来看看是如何设计完成的吧。 需求分析: 首先游戏要有图形用户界面,界面能够反映游戏所有的细节。 界面中要有坦克,墙,树林,河流。 界面中要有一个“家”,“家”被攻击中则输了游戏坦克分两种,...

java李阳勇的博客 1万+

基于java swing的坦克大战游戏

一.功能描述 java坦克大战主要功能: 1. 图形用户界面; 2. 有坦克、森林、河流、墙体等元素; 3. 界面中有一个我方大本营,我方大本营被敌方攻击则输游戏; 4. 墙体分为普通墙体和金属墙体两种,普通墙体可以被子弹射穿,金属墙体不能被子弹射穿; 5. 坦克可以通过森林,不能通过河流、墙体; 6. 坦克可以发射子弹,敌我双方的坦克属性相同; 7. 敌方坦克之间不能互相攻击

江江的博客 1万+

基于Java坦克游戏大战设计与实现(附论文)

代码展示 目 录 1.引言 2.系统分析 2.1需求和技术分析 2.2功能分析 3.总体设计 3.1总体功能 3.2坦克大战总体流程图 4.详细设计 4.1面板功能设计 4.2子弹功能设计 4.3坦克功能设计 4.4服务器设计 4.5客户端设计 5. 游戏测试 5.1 测试方法 5.2 系统测试 5.3 测试分析和小结 6.结论 参考文 基于Java坦克大战游戏的设计与实现 摘要:随着人们对生活...

code51博客 5825

Java坦克大战简易版1.0

java 编写的简易坦克大战,由键盘控制坦克移动,和子弹发射。控制坦克不能跑出游戏界面以外,以及删除飞出界面外的无效子弹。

weixin_42172720的博客 2215

Java游戏实现》:坦克大战(2)

Java游戏实现》:坦克大战(2)相关博文:《Java游戏实现》:坦克大战http://blog.csdn.net/u010412719/article/details/51712663《Java游戏实现》:坦克大战(续一):http://blog.csdn.net/u010412719/article/details/51723570博文《Java游戏实现》:坦克大战(续1)中已经实现

wojiushimogui的博客 5933
上一篇: Java练手项目1:基于RFID的图书仓储管理系统(可做毕设)
下一篇: Java练手项目3:基于Java的经典扫雷游戏(入门必备)!
JavaToShare
博客等级 码龄6年 85粉丝 6原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值