基于J2SE的网络版坦克大战游戏设计摘要[摘要]:J2SE (Java 2 Standard Edition)就是Java2的标准版,主要用于桌面应用软件的编程,是伴随着计算机技术的飞速发展而诞生的一项新的开发技术。
随着个人电脑的日益普及、Java 功能在个人电脑上的实现,Java应用程序产生的单机增值服务逐渐体现出其影响力,对丰富人们的生活内容、愉悦身心、开发智力等起着不可忽视的作用。
该论文通过总结和分析JA V A 游戏的开发流程和代码框架的设计,开发了一款基于J2SE架构的游戏——坦克大战。
本设计采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。
运行程序后允许用户选择执行选项菜单。
在开始游戏后,启动服务器和客户端,对背景的所有物体进行绘图。
在主程序运行的线程中,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。
用户控制的坦克运行在主线程中,随屏幕刷新的频率而移动。
坦克将在游戏开始时进行初始化,然后将坦克绘制在地图的上层。
本设计主要实现的功能是让坦克能向八个方向移动,并且打出炮弹,子弹击中敌人坦克,子弹和敌人坦克同时消失,产生爆炸,CPU坦克能智能的移动并且打出炮弹。
能够支持网络对战和单机对战两种模式。
Java良好的跨平台特性在软件的开发中显示出了巨大的威力,“一次编写,随处运行”,java 系统可以运行在不同的操作系统和硬件上。
随着linux的持续增长以及MacOSX完全支持java技术,跨平台的特性变得越来越有分量。
由于免费、跨平台、java语言本身技术先进,在高校中,java已经成为许多学科研究、课程和计算的首选语言,用java做上机作业,一般都是鼓励的。
据我所知,北大、清华许多院系的研究生入学考试都可以用java语言答题。
实际上,用java来完成这些工作,大多数情况下要比用C或其他语言简洁得多,你可以把注意力集中在算法等核心部分,从而获得更高分数。
[关键词] 面向对象坦克大战游戏J2SE Socket[目录]第1章前言 (1)1.1游戏设计的需求分析 (1)1.1.1国内外电子网络游戏的现状 (1)1.1.2本系统的现实意义 (1)1.1.3本系统和其他开发游戏区别 (1)1.2开发技术概述 (2)1.2.1J AVA、C#语言、C/C++主流编程语言比较 (2)1.3本章小结 (3)第2章相关技术理论 (4)2.1系统运行环境 (4)2.1.1系统运行的软件环境 (4)2.1.2系统运行的硬件环境 (4)2.2相关理论 (4)2.2.1关于E CLIPSE的介绍 (4)2.2.2J2SE框架 (5)2.2.3联机通信机制 (6)2.2.4J AVA图形编程 (6)2.3本章小结 (7)第3章系统设计 (8)3.1系统可行性分析 (8)3.1.1技术可行性 (8)3.1.2经济可行性 (8)3.1.3操作可行性 (8)3.2系统需求分析 (8)3.2.1在人机对战模式下实现的功能 (8)3.2.2在网络对战模式下实现的功能 (8)3.3系统功能设计 (9)3.3.1坦克大战总体功能设计 (9)3.3.2G AME W INDOW类基本功能分析 (10)3.3.3T ANK C LIENT类基本功能分析 (11)3.3.4B ALL类基本功能分析 (11)3.3.5E XPLODE类基本功能分析 (11)3.3.6服务器类基本功能分析 (12)3.3.7信息传送类基本功能分析 (12)3.4本章小结 (12)第4章系统实现 (13)4.1游戏主窗体实现 (13)4.2单机游戏的实现 (14)4.3联机功能实现 (16)4.4本章小结 (18)第5章总结与展望 (19)5.1总结 (19)5.2设计中的不足之处 (19)5.3展望 (19)致谢 (20)参考文献 (21)附录1 (22)第1章前言1.1 游戏设计的需求分析1.1.1 国内外电子网络游戏的现状游戏本身就是一种娱乐方式。
自有人类文明的时候,就有了游戏,可以说游戏就是人们生活娱乐的一部分。
在今天,借助于数字、电子、网络、创意、编剧、美工、音乐……等等“先进”的道具,网络游戏对于人们现实生活的虚拟达到了一个全新的境界,并且则在这新的境界上还原了游戏的本源--人与人的互动。
网络游戏满足了现代社会必须的沟通需求,无疑它应该是适合所有人的。
国内网络游戏市场,已经坐拥了1000万用户且仍不断增长的游戏玩家市场,百余款游戏也着实热闹,但也体现出国内玩家的相对固定和游戏种类的相对单一,虽说运营商的推广手法也各具特点,可本质上的大同小异使得竞争空前惨烈,而由此诱发的种种问题更是招致了社会与媒体的不满,阻碍了游戏产业的发展。
网络游戏市场的重新定位是最迫切需要解决的问题。
大型游戏机除了在大众休闲娱乐方面,还在军事、国防、医疗等方面有良好的发展前景。
广州大型游戏机所采用的尖端计算机图形图像技术、多样化的软件程序设计、成熟的机械和电子技术,被充分运用在军事、国防及医疗等方面。
例如,在军事模拟对抗演习中,大型游戏机既可以模拟作战现场的地形、军力部署、天气等情况,还可以进行多兵种战术技能对抗训练;在国防训练方面,大型游戏机可以模拟坦克操纵、导弹发射、飞机驾驶、舰艇巡航等多种训练任务;在医疗培训方面,大型游戏机拥有的全息三维立体投影技术,可以逼真地展示人体的各部分构造和器官,以上这些方面的应用,都显示出大型游戏机在降低行业技能培训成本的优势。
1.1.2 本系统的现实意义《坦克大战》(Battle City)是1985年日本南梦宫Namco游戏公司在任天堂FC(FamilyComputer)平台上,推出的一款多方位平面射击游戏。
游戏以坦克战斗及保卫基地为主题。
大部分80后的青年人曾经都玩过这款FC平台上的经典游戏,FC平台上的坦克大战只能两个人协同作战。
本系统运用Java这个跨平台的编程语言,在PC上重新实现这一款经典游戏,探究曾经这一款经典游戏的大概设计与实现,并且加入坦克八个方向的行走,多人的局域网对战模式,使游戏的玩法更丰富。
1.1.3 本系统和其他开发游戏区别本系统的坦克大战是基于Java语言设计开发的,具有高超的人工智能,精美的图形处理,支持单机运行和网络对战的坦克射击游戏。
比之前网络上实现的游戏更加方便,快捷,智能。
游戏基本玩法较简单,游戏可一人电脑作战,每次电脑方有坦克10辆,游戏以消灭全部敌方坦克过关为目的。
在这过程中,坦克有机会得到血块来添加生命值,从而变得更加强大,也能利用各种有利地形来阻击敌人。
游戏设置了墙面,电脑方坦克不能穿越墙面射击玩家坦克,而玩家坦克可随意穿越墙面打击电脑方坦克,这一游戏特权。
还有给玩家坦克设置超级炮弹,当电脑方坦克数量过多时,玩家坦克可以发射超级炮弹打击敌方。
主要新增的功能简单罗列如下:1、屏幕左上方显示游戏状态,当玩家方坦克数全为零时则游戏结束;2、一般坦克只可在空地中或草丛中行走,不可通过墙面等障碍物;3、游戏中打坏敌方坦克后,可能会在随机位置随机出现血块奖励,坦克经过该位置可获得相应加生命值奖励;4、玩家坦克的游戏资格和电脑坦克不同。
1.2 开发技术概述1.2.1 Java、C#语言、C/C++主流编程语言比较a)简单地说,它们不是同一种语言,语法有差别,编程时具体用到的类库或者函数库也不一样。
虽然它们不是同一种语言,不过它们却也有所联系。
广泛地说,C可以看作其他三种语言的源语言,因为其他三种语言几乎都是从C而来的,无论从数据类型还是控制语句看,其他三种语言都有从C 得来的迹象。
b)切需要面向对象的编程特性,所以贝尔实验室的开发者就为C添加了面向对象的结构。
现在C++已经不只是C的扩展了,它已经完全可以被看作一种新的编程语言。
虽然C的特性以及库函数仍然被C++支持,不过C++拥有自己的独立的类库体系,功能相当强大。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
虽然它的底层(运行时库)是用C语言开发的,可是并不依赖于C。
因为Java的运行是在运行时库的支持下进行的,所以运行效率比起可以更接近底层的C/C++来说效率会有所影响,不过Java的跨平台的特性尤其让很多开发者欢迎,你只需要开发一次就能在所有安装了Java运行时库的系统上运行。
Java发展了十几年了,可以应用领域非常之广泛,Web开发有JSP,J2EE,桌面领域现在有Java FX。
C#是微软开发的一种编程语言,语法类似Java,几乎就是从Java的翻版。
运行原理和Java也类似,也是通过运行时库的支持运行。
不过支持的平台还很有限。
JA V A几乎被所有平台支持,而C #目前只被Windows和Linux支持,Windows下的支持当然是由微软自己开发的,而Linux下的支持则有MONO支持。
实际上,MONO也是把C#应用转化为JA V A应用而已,所以本质上,C#仍然只是被微软自己的操作系统支持。
应用平台受到限制,是它最大的缺点。
C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。
关于缺点,我想正是源于其优点,因为它们能控制的编程元素粒度精细,所以编程比较困难,烦琐,容易出错。
c)Java和C#都比较高级,可以看作高级语言的高级语言,优点是开发容易,但运行效率不如更为底层的C/C++。
具体选择使用的时候,可以根据实际的项目需要选择。
运行效率要求高的,底层控制要求高的用C /C++,否则可以选择Java或C#;跨平台的要求高的可以用Java。
关于跨平台,C/C++也是很好的语言,因为所有平台都支持,不同的是,不同平台支持的实现不同,类库不同,要编写跨平台的程序,需要选择跨平台的类库,如标准类库,如果标准类库的支持不够也只需要附加编写一个跨平台的支持类库。
1.3 本章小结本章主要介绍了网络游戏在国内外发展的现状。
本系统主要的现实意义,与其之前版本的区别和扩展的一些功能。
对Java、C#、C/C++几种主流编程语言比较,阐述了使用Java语言编程的原因。
第2章相关技术理论2.1 系统运行环境2.1.1 系统运行的软件环境(1)网络服务器操作系统:Windows XP;(2)开发工具:eclipse3.6.2;(3)运行环境:J2SDK 1.6;(4)编程语言:Java语言;2.1.2 系统运行的硬件环境(1)CPU:Intel或者兼容微处理器,奔腾166MHz及其以上;(2)内存:最低32MB,可以运行图形界面的Java Application;最低48MB,可以运行Java Applet;内存不足,将会导致系统(尤其是服务器)的性能大幅下降;(3)硬盘:242 MB到80 GB及其以上;(4)图形显示卡:无要求;(5)网卡:普通网卡,3Com OfficeConnect 10/100兆位网卡;2.2 相关理论2.2.1 关于Eclipse的介绍Eclipse是著名的跨平台的自由集成开发环境(ID E)。