当前位置:文档之家› java坦克大战毕业设计论文

java坦克大战毕业设计论文

java坦克大战毕业设计论文
java坦克大战毕业设计论文

基于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章系统设计 (7)

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)。最初主要用来Java语言开发,目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。

Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较佳的灵活性。许多软件开发商以Eclipse为框架开发自己的ID E。

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代ID E开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布;2008年6月发布代号为Ganymede的3.4版;2009年6月发布代号为Galileo的3.5版;2010年6月发布代号为Helios

的3.6版

Eclipse的基础是富客户机平台(Rich Client Platform,即RCP)。RCP包括下列组件:

?核心平台(启动Eclipse,运行插件)

?OSGi(标准集束框架)

?SWT(可移植构件工具包)

?JFace(文件缓冲,文本处理,文本编辑器)

?Eclipse工作台(即Workbench,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))

Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT 和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI 中间层JFace,从而简化了基于SWT的应用程序的构建。

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C++(CDT)、PHP、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。

Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API(SWT/Jface),Java开发环境插件(JDT),插件开发环境(PDE)等。

2.2.2 J2SE框架

Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程

Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制

Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒

简单讲就是:

J2SE: Java 2 Standard edition (Java 2 标准版)

J2EE: Java 2 enterprise edition( Java 2 企业版)

J2ME: Java 2 micro edition (Java 2 微缩版)

他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类

应用场合,API的覆盖范围各不相同。

笼统的讲,可以这样理解:J2SE是基础;压缩一点,再增加一些CLDC等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。

补充一点J2EE更恰当的说,应该是JA V A2企业开发的技术规范,不仅仅是比标准版多了一些类。J2EE 又包括许多组件,如Jsp, Servlet, JavaBean, EJB, JDBC, JavaMail等。

J2SE商业版本,标准版本(Java2 Standard Edition)定位在客户端,主要用于桌面应用软件的编程。

J2SE包含那些构成Java语言核心的类。

比如:数据库连接、接口定义、输入/输出、网络编程

J2SE是J2EE的基础,他大量的JDK代码库是每个要学习J2EE的编程人员必须掌握的。

从JDK 5.0开始,不再叫J2SE,改名为Java SE了,因为那个2已经失去了其应该有的意义。

2.2.3 联机通信机制

网络编程,简单地理解就是两台计算机相互通信。其基本模型就是客户机/服务器模型,也就是通信双方中的一方必须提供一个固定的位置,而另一方只需要知道这个固定的位置,并且建立两者之间的联系,然后完成数据交换。这里提供固定位置的一方通常称为服务器,而建立联系的一方称为客户端。Socket(中文意思为插座),基于客户机/服务器的Socket通信模式如图2.1所示:

图2.1 基于客户机/服务器的Soctet通信模式图

当客户程序需要与服务器程序通讯的时候,客户程序在客户机创建一个socket对象,Socket类有几个构造函数。两个常用的构造函数是Socket(InetAddress addr, int port)和Socket(String host, int port),两个构造函数都创建了一个基于Socket的连接服务器端流套接字的流套接字。两个函数都通过参数port获得服务器的端口号。假设已经建立连接了,网络API将在客户端基于Socket的流套接字中捆绑客户程序的IP地址和任意一个端口号,否则两个函数都会抛出一个IOException对象。如果创建了一个Socket对象,那么它可能通过调用Socket的getInputStream()方法从服务程序获得输入流读传送来的信息,也可能通过调用Socket 的getOutputStream()方法获得输出流来发送消息。在读写活动完成之后,客户程序调用close()方法关闭流和流套接字。

2.2.4 Java图形编程

Java中的Graphics类是用于绘图和显示格式化文本的工具类。在Java程序中绘图必须在一个窗口(容

器)中进行,绘图窗体经常被设计为一个组件容器。一般首先在一个面板中进行绘制,然后再将这个面板添加到显示窗口中去。

Graphics类是在Java.awt包中申明,显示格式化文本和绘图时通过调用Graphics类的draw()方法实现的,例如drawString(String),drawLine()等。绘图采用的坐标系是原点在左上角,纵轴向下以像素为单位的坐标系。

2.3 本章小结

在本章节中首先介绍了该系统的运行环境,值的注意的是软件环境的配置,因为整个系统都是在虚拟环境下运行的,所以虚拟环境对于整个设计的调试和运行至关重要;其次对开发工具Eclipse3.6.2的简单介绍,利用eclipse开发项目,是可以提高项目的开发效率。还有是对一些技术理论,J2SE框架,Java语言,系统运行所支持的操作系统,联机通信机制及Java图形编程等理论做了简单的介绍,为本系统后期实现图形化界面和网络通信做了理论支持。

第3章系统设计

3.1 系统可行性分析

3.1.1 技术可行性

Java语言自Sun公司于1995年5月正式发布以来,经历了出生、成长、成熟壮大的几个阶段,逐渐发展成为IT领域里的主流计算模式,使用Java开发工具方便,容易实现。Java对开发网络产品有它自己独特的优势,网络游戏也是其开发产物之一。本系统开发过程是利用Java编程语言和eclipse集成开发环境配合使用来实现的,它是基于TCP/UDP协议和Socket编程技术,建立以C/S为结构模式的娱乐性游戏平台。

3.1.2 经济可行性

本设计的开发是基于JDK1.6和eclipse3.6的,因为它们都是免费而且开源的软件,所以实现本设计的成本就有所降低。随着计算机、网络通讯和信息技术的迅猛发展以及人类精神生活品质的提高,国际、国内的各种各样的大型综合游戏网站如雨后春笋般的发展起来。一款好的游戏带来的经济效益可以说是不可估量的,比如现在网上最流行的魔兽世界、征途等大型网络版游戏。本游戏既可单机运行,也可以是联机版多人同时在线对战。

3.1.3 操作可行性

本设计是一个网络版的游戏平台,只是模拟了现在社会上的一些网络游戏的部分功能,所以操作简易,玩家不需要了解内部流程,只是和一般其他的网络游戏一样的操作即可开始游戏。相对于开发者而言,整个系统形成主要由JDK5.0虚拟环境和eclipse3.2共同完成,无需更多复杂的工具和服务器支持。

3.2 系统需求分析

3.2.1 在人机对战模式下实现的功能

在单机模式下实现以下基本功能:

1)坦克可以8个方向的行走,Z键打出子弹,S键超级炮弹,A键添加电脑坦克,F2复活。

2)智能的敌方坦克,随机移动,随机打出子弹。

3)加入四面墙,子弹和敌方坦克不能穿墙。

4)敌方坦克之间不重叠。

5)子弹与坦克的碰撞检测。

6)加入主战坦克的血条显示,每颗炮弹减10点血,总共100点血,电脑坦克一颗子弹就死亡。

7)使用配置文件可以配置敌方坦克出现的数量。

8)菜单栏选项,可以选择单机模式或网络模式,可以查看帮助信息,关于信息。

9)加入坦克、子弹、墙的图片,使界面看上去更美观。

3.2.2 在网络对战模式下实现的功能

在人机对战模式中实现功能基础上,增加以下功能实现网络对战功能:

1)创建一个游戏的服务器端程序,负责分配客户端ID号和转发每一个客户端的信息到其它客户端,

使用TCP协议接收客户端的连接,使用UDP协议传送坦克的各类数据

2)客户端需要配置服务器的IP地址,服务器TCP端口,服务器UDP端口,本机的UDP端口

3)客户端使用TCP连接服务器,服务器分配唯一的ID号给客户端

4)使用UDP协议向服务器发送本机坦克数据

5)启动服务器之后,客户端坦克加入到服务器中,分红方和蓝方势力互相对战

3.3 系统功能设计

3.3.1 坦克大战总体功能设计

坦克大战游戏主要实现玩家参加游戏的整个流程,用户登陆游戏客户端选择游戏模式,可分为单机模式和网络对战模式,选择单机模式可以直接进入游戏状态;选择网络对战模式,在启动服务器后,玩家需要设置网络参数,服务器的IP地址、服务器TCP端口、服务器UDP端口、本机的UDP端口,本机的UDP端口不能与其它客户端相同,成功后服务器会分配指定的ID号给客户端(只有成功连接上服务器的玩家才能参与网络对战游戏功能);连接上的玩家就可以通过控制键盘操作,加入对战游戏。整个网络版坦克大战游戏流程图如图3.1所示:

图3.1 网络坦克大战游戏流程

GameWindow 类是整个系统的核心部分,它承担整个系统的所有可实现功能的调度工作。 是整个游戏运行的场所。GameWindow 类设计流程图如图3.2所示:

图3.2 GameWindow 类设计流程

GameWindow 类是主类,通过调用其他类中封装的方法来使整个系统运行起来,下面显示GameWindow 与其它各类之间的关系如图3.3所示:

图3.3 游戏系统类关联图

智能

移动

TankClient(坦克)类中,封装了一些变量属性,包括坦克自己的大小(W ID TH,HRIGHT),运动速度(SPRRD_X:在x轴方向的速度;SPEED_Y:在Y轴方向的速度)、生命值控制(life)、坦克编号(ID)、坦克名(name)、方向控制(dir)、生死控制(live)、好坏控制(good)的变量等。TankClient类中没有main函数,不是主类,它当中只封装一些变量属性和静态方法,被TankClient类调用来实现坦克的一系列动作。TankClient类中的主要方法罗列如下:

(1)public Rectangle getRectange() {

return new Rectangle(TankClientX, TankClientY,

images[0].getWIDth(null), images[0].getWIDth(null));

}

Rectangle类是碰撞检测的辅助类,通过得到坦克和子弹的矩形,检测两个矩形是否碰撞(相交);

(2)draw()方法:负责将自己坦克所有的活动在屏幕上画出来;

(3)move()方法:主要负责控制坦克的移动,包括8个方向(左,左上,上,右上,右,右下,下,左下)的控制及坦克对于边界的处理

(4)keyPreesed()方法:设定使用键盘的“↑”“↓”“←”“→”“A”“S”F2”键控制坦克移动及发炮,并且网络对战中向服务器发送消息等操作;

(5)keyReleased ()方法:处理按键抬起事件,抬起“Z”键时,发射炮弹并加入新炮弹,能够逐一发射每一发炮弹、抬起“S”键可以发射超级炮弹等功能,并向服务器发送消息;

(6)locateDireaction()方法:判断坦克及炮筒方向,并且换方向时候向服务器发送一条消息

(7)fire() 方法:处理发送子弹的方法,并向服务器发送添加一颗子弹的消息;

(8)collIDesWithWall()方法:主要负责处理坦克撞墙事件;

3.3.4 Ball类基本功能分析

Ball(子弹)类和Tank类一样,只封装一些变量属性和静态方法,主要变量包括:子弹自己的大小(WIDTH,HRIGHT),运动速度(SPRRD_X:在x轴方向的速度;SPEED_Y:在Y轴方向的速度)、子弹标示(ID)、所属坦克的ID号(TankID用于网络版)等。Misslie类持有一个TankClient类(大管家)的引用tc,TankClient类要执行发射炮弹操作时调用Missile类中的方法。Misslie类中的主要方法如下:(1)draw()方法:负责画出子弹的所有活动;

(2)move()方法:先判断方向再移动,并给它一定的移动速度;

(3)getRect()方法:负责取得子弹的外切方形,为碰撞检测做准备;

(4)hitTan()方法:检测子弹是否撞到坦克,若撞到返回true,否则返回false;

(5)hitTanks()方法:检测是否撞到一系列坦克中的一个;

(6)hitWall()方法:检测子弹和墙是否相撞。

3.3.5 Explode类基本功能分析

Explode(爆炸)类也是一个只封装自己的变量和方法的外部包装类,没有main方法,供TankClient主类需要时调用它的draw()方法,当子弹击中坦克时需要产生爆炸。使用11张图片重叠现实爆炸效果如

3.4图所示:

图3.4 爆炸图

3.3.6 服务器类基本功能分析

TankServer(服务器)类主要负责在网络对战游戏时维护各个在线玩家的基本信息,并动态的维护玩家列表。联机模式下类关系图如图3.5所示:

3.5 联机模式类关联图

3.3.7 信息传送类基本功能分析

信息传送类就是用来封装客户端和服务器端的交互信息。将网络中传递的众多信息封装成可序列化的类,将会使程序有很好的可扩展性。

3.4 本章小结

本章首先对整个游戏设计进行了可行性分析,其次对游戏要达到怎么样的需求,要实现哪些功能做以及实现这些功能设计到的类,最后再详细的介绍了系统要实现这些功能所涉及到的各个类之间的关系。

第4章系统实现

4.1 游戏主窗体实现

GameWindow类负责画出游戏主窗体,它是整个游戏运行和所有活动的场所。登陆主窗口后,主界面上包括两个下拉菜单条,“游戏”和“帮助”,玩家点击“游戏”菜单条下可以选择游戏模式;“帮助”下拉菜单条中有游戏说明和游戏操作,方便用户了解游戏规则。为了游戏不至于太单调,还配置了背景音乐。除此之外,本设计优点是GameWindow类还封装了一个update()方法,使用双缓冲消除闪烁现象。因为刷新重画频率太快,paint()方法还没有完成,会造成逐条显示,影响系统的运行,所以解决办法是创建一个虚拟屏幕,在屏幕的后面,在要画的将所有的东西画在虚拟屏幕上,也就是内存上,画完之后一次性将虚拟屏幕上的内容贴到屏幕上,这样就消除了闪烁现象,用户的眼睛便感觉不到闪烁了。GameWindow 类是整个系统的“大管家”,当要执行某动作时,“大管家”只需要调用各个类中封装好的方法,让被调用的类自己去执行它自己的方法,这更体现了面向对象的思想。游戏主窗体界面如图4.1所示:

图4.1 游戏主窗口预览效果图

实现虚拟屏幕消除闪烁的关键代码如下:

public voID update(Graphics g) {

if(null==img){

img = this.createImage(gameWIDth,gameHeight);

}

Graphics imgGraphics = img.getGraphics();

Color c=g.getColor();

imgGraphics.setColor(Color.black );

imgGraphics.fillRect(0, menuHeight , gameWIDth , gameHeight ); g.setColor(c);

paint(imgGraphics);

g.drawImage(img ,0,0,null );}

4.2 单机游戏的实现

游戏运行主界面,在下拉菜单中选择单机游戏进入单机模式,通过键盘控制坦克运动,相互对战,当被打中时产生一个爆炸,屏幕左上方显示游戏信息:子弹数目(出界就死亡)、爆炸数目、CPU 坦克数目(网络模式下不显示)、玩家坦克生命值、您击毁的坦克数量、当前ID (单机模式下不显示)。其效果图如图4.2所示:

图4.2 单机游戏模式主界面图

CPU 敌人坦克智能移动、开炮的关键代码如下:

public static Random random = new Random();//随机数 static private int step = random .nextInt(12)+3;;//坦克移动的步数 //设定移动的方向,移动步数,开炮概率 private voID locateDirection(){ if (step ==0){ int randomNumber = random .nextInt(directions .length );

direction = directions[randomNumber];

gunbarrelLocateDirection();

step= random.nextInt(12)+3;//随机产生移动的步数,最少为3

if(step==3){//随机开炮

GameWindow.getBalls().add(fire());

}

}

step--;

}

当玩家在单机模式下按A键可以使用超级炮弹,可同时向八个方向发射炮弹,效果如图4.3所示:

图4.3 发射超级炮弹

超级炮弹的关键代码如下:

private Direction[] directions = Direction.values();// 得到方向数组

// 八个方向开炮

private voID superFire() {

if (!isLive()) {//如果坦克是死亡的

return;

}

if (GameWindow.getNc() != null) {//如果网络模式已经打开

return;

}

int x = this.TankClient X + this.CLIENTTANKW ID TH / 2;// 子弹出现的X坐标

int y = this.TankClient Y + this.CLIENTTANKHEIGHT / 2;// 子弹出现的y坐标

for (int i = 0; i < 8; i++) {//从方向类的数组里依次取8个方向

GameWindow.getBalls().add(

new Ball(this.ID, dir ections[i], good, x, y, GameWindow));

}

}

当玩家被击中一次扣10点血,当100点血全部扣完,提示游戏结束,并显示死亡的次数,按F2可以满血原地复活,继续战斗,效果如图4.4 所示:

图4.4 玩家死亡时游戏界面

4.3 联机功能实现

在本系统的实现过程中,在支持网络对战的服务器类的定义中需要使用ServerSocket 类来响应多个客户端连接请求,server 服务器上需要两大协议,一个是TCP ,用来接收客户端;另一个是UDP ,用来转发游戏的数据。Server 类系统模型图如图4.5所示:

图4.5 Server 类系统简单模型图

网络游戏模式下,游戏主要在客户端运行,启动客户端时玩家首先要填写信息之后才能加入到游戏中

server

TCP Listener

UDP Listener

接收客户端连接 转发游戏数据

坦克大战课程设计论文

坦克大战游戏设计 1.课程设计的目的 随着手机的日益普及,java功能在移动设备上的实现及java 应用程序产生的影响力,对丰富人们的生活内容,提供便捷的咨询起着不可忽视的作用。本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse3.2环境下编程。本项目重点运用了图形化用户界面GUI,Thread多线程的有关知识,其中涉及了绘图工具的运用,事件处理操作以及图形的碰撞检测等知识点。通过此课程设计,使学生巩固所学知识、培养学生动手能力,了解Java的面向对象的体系结构。学生用Java语言设计一个完整的应用程序,综合应用所学知识完成软件的分析、设计、调试和总结,提高学生对Java语言的综合应用能力和解决问题的能力。 2.设计方案论证 2.1设计思路 本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse3.2环境下编程。 一、游戏基本元素:坦克,炮管,子弹,墙壁,地雷 二、它的主要功能: (1)能够朝四个方向移动:上、下、左、右键。 (2) 按下鼠标左键发射普通子弹;按下鼠标右键发射散弹;子 弹爆炸的效果,普通子弹和炮弹的效果 (3)敌人能够移动

(4)能够模拟爆炸 (5)能够产生障碍 (6)能够增长生命 玩家控制主坦克(上方有血条的)的移动以及炮弹的发射。若玩家将敌方坦克全部打掉则玩家胜;若期间由玩家控制的主坦克被打掉则视为玩家失败。游戏中只有普通墙作为障碍物,玩家无法穿越它们并且普通子弹不能将墙打穿 ;但是玩家可以用炮弹将普通墙打掉。桃心可以将坦克的血加满。 2.2简要的设计流程: 键盘监听器 2.2设计方法 2.2.1构建游戏主类

java毕业设计论文总结

java毕业设计论文总结 java毕业设计论文总结 1.Java语言的出现 自从1946年世界上第一台电子计算机问世以来,计算模式的发展经历了三个阶段:集中计算模式、分散计算模式和网络计算模式。Internet的出现,为在网络计算模式下的科学计算和信息处理提供了良好平台。然而,要充分利用网络计算模式的功能与效益,平台的运行环境是个制约因素,而Java语言和Java技术则是解决这一问题的最佳途径。 1991年,SUN公司的Jame Gosling,Bill Joe等人试图为电视、烤箱等家用电器开发一种交互式的软件系统,这种应用需要的是那种小而可靠的系统,它能够移植,并且实时性好,适用于网络分布环境。流行的C++是自然的选择。不过,开发过程中遇到的许多难以克服的困难使他们意识到必须彻底解决问题了,最终,开发成功了一个名为Oak的软件,此中蕴藏着Java的原型,当时,并未引起人们的注意。1994年下半年,随着Internet的迅猛发展,环球信息网WWW的快速增长,促进了Java语言研制的进展,使得它逐渐成为Internet上倍受欢迎的开发与编程语言。1995年5月Java正式问世,一些著名的计算机公司纷纷购买了Java语言的使用权,如Microsoft、IBM、Netscape、Novell、Apple、DEC、SGI等。因此,Java语言被美国著名杂志PC Magazine评为1995年十大优秀科技产品(计算机类仅此一项入选)之一,随之大量出现了用Java编写的软件产品,受到工业界

的重视与好评,认为“Java是八十年代以来计算机界的一件大事”。微软总裁比尔·盖茨在认真观察了一段时间后,确认“Java是长时间以来最卓越的程序设计语言”,并确定微软整个软件的开发战略从PC单机时代向以网络为中心的计算时代转移,而购买Java则是他的重大战略决策的实施部署。 因此,Java的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。SUN Microsystem公司的总裁Scott McNealy认为:Java对Internet和WWW开辟了一个崭新的时代。 有人预言:Java将成为网络上的“世界语”,今后,用其他语言编写的软件统统都要用Java语言来改写。 2.Java语言的主要特点 Java语言是一种适用于网络编程的语言,它的基本结构与C++极为相似,但却简单得多。它集成了其它一些语言的特点和优势,又避开了它们的不足之处。它的主要特点如下: 2.1简单性 Java与C++相比,不再支持运算符重载、多级继承及广泛的自动强制等易混淆和较少使用的特性,而增加了内存空间自动垃圾收集的功能,复杂特性的省略和实用功能的增加使得开发变得简单而可靠。 简单化的另一个方面是Java的系统非常小,其基本解释和类

JAVA毕业设计论文题目大全

计算机 JA V A 毕 业 论 文 题 目

目录 JAVA类论文题目 (2) 第1-51个题目 (2) JSP类论文题目 (3) 第1-50个题目 (3) 第50-100个题目 (4) 第101-150个题目 (5) JAVA类论文题目 第1-51个题目 1.学籍管理系统 2.Java远程通信及应用的研究 3.JAVA游戏 4.俄罗斯方块游戏 5.JAVA多线程教学演示系统 6.IPv4网络协议问题分析 7.校园网规划与设计 8.校园网络规划设计 9.办公局域网设计 10.智能小区规划 11.搜索引擎的研究与实现 12.基于Java的电子邮件接收系统 13.人事管理系统 14.题库管理系统 15.银行帐目管理系统 16.FTP客户端的设计与实现 17.办公自动化系统 18.JAVA游戏引擎开发与实践 19.宾馆客房管理系统 20.房地产信息管理系统 21.光盘管理系统 22.猜数字游戏 23.泡泡堂网络游戏 24.开发FTP系统的设计 25.局域网监听软件

26.基于纠错码的冗余技术 27.掌上网络商店 28.机主留言系统 29.基于Http协议的断点续传 30.WML信息查询设计 31.题库及试卷管理 JSP类论文题目第1-50个题目 1.网上书店 2.网上考试 3.手机销售系统 4.基于JSP技术的网络陶瓷城 5.智能道路交通信息管理系统 6.B2C的电子商务系统(J2EE) 7.网络远程作业处理系统 8.设备管理系统 9.网上购物系统设计 10.网上拍卖平台系统 11.手机游戏(J2EE) 12.网上商店系统 13.电子报销系统(J2EE) 14.公文管理系统 15.B2C电子商务平台 16.企业资产管理系统 17.会议管理系统 18.教务管理系统 19.电子商务网站 20.网络办公系统 21.毕业论文管理系统 22.网上购物系统 23.工资管理系统 24.网站流量统计系统 25.项目管理系统 26.手机销售管理系统 27.房屋交易管理系统 28.进销存管理系统 29.房管局房屋交易管理系统 30.新闻发布系统

毕业设计结论

毕业设计结论 篇一:毕业论文结论怎么写 毕业论文结论怎么写 在写完毕业论文后,通常要给毕业论文作一个结论。那么,毕业论文结论怎么写呢?以下有一篇毕业论文结论模板,大家可以从以下几个角度予以参考。 毕业论文是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整的给排水系统设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富,并且意志品质力,抗压能力及耐力也都得到了不同程度的提升。这是我们都希望看到的也正是我们进行毕业设计的目的所在。 虽然毕业设计内容繁多,过程繁琐但我的收获却更加丰富。各种系统的适用条件,各种设备的选用标准,各种管道的安装方式,我都是随着设计的不断深入而不断熟悉并学会应用的。和老师的沟通交流更使我从经济的角度对设计有了新的认识也对自己提出了新的要求,举个简单的例子:市政

给水管网引入管的管径如果选择不当就将造成上万元的直接经济损失,这些本是我工作后才会意识到的问题,通过这次毕业设计让我提前了解了这些知识,这是很珍贵的。 提高是有限的但提高也是全面的,正是这一次设计让我积累了无数实际经验,使我的头脑更好的被知识武装了起来,也必然会让我在未来的工作学习中表现出更高的应变能力,更强的沟通力和理解力。 从不知道毕业论文怎么写,到顺利如期的完成本次毕业设计,这给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心,这些我在毕业论文结束语中都提起过。事实上,给水系统排水系统还是消防系统,我都采用了一些新的技术和设备他们有着很多的优越性但也存在一定的不足,这新不足在一定程度上限制了我们的创造力。比如我的设计在节约水能源上就有很大的不足,在这个能源紧缺节能被高度重视的社会中,这无疑是很让我自身感到遗憾的,可这些不足正是我们去更好的研究更好的创造的最大动力,只有发现问题面对问题才有可能解决问题,不足和遗憾不会给我打击只会更好的鞭策我前行,今后我更会关注新技术新设备新工艺的出现,并争取尽快的掌握这些先进的知识,更好的为祖国的四化服务。 篇二:毕业设计总结

项目坦克大战设计报告

《JA V A程序开发课程设计》项目设计 项目名称:TankWar 软件 专业:软件工程班级:13软工1班姓名:毛晨光学号:24 一、需求分析: 基本功能: 1.玩家控制的坦克能够四处移动并且打击敌方坦克; 2.敌方坦克能够随机四处移动并且打击玩家控制的坦克; 3.玩家控制的坦克拥有血量,而敌方坦克没有; 4.坦克受到攻击时血条会缩短; 5.敌方坦克被消灭完之后,提示游戏胜利; 6.用户方坦克被消灭后提示游戏结束; 特色功能: 1.坦克具有图片,不单单只是个圈圈。 2.增加了血包功能,地图上会随机出现一个血包,我方坦克开过会增加 血量。 二、系统设计: 类:实现游戏界面地图的初始化。 类:绘制和重绘功能。 :监听用户的键盘输入。 类:实现坦克的初始化,绘制,移动,发射等功能。 :实现敌方坦克的初始化,绘制,移动,发射等功能。 类:实现炮弹的初始化,绘制,移动,攻击功能。 类:实现爆炸的初始化。绘制功能,爆炸效果由绘制半径从小到大再到小的圆实现。 类:包含枚举。 类:用于实现血包的功能。 三、功能实现。 一.绘制地图功能: public class TankMap extends Frame{ tart(); }

制坦克功能:public class Tank { 方坦克的绘制方法 public class EnemyTank extends Tank{ 弹绘制方法public class Shell { ntersects())){

ntersects())){ "hittanks"); (false); =false; Explor ex=new Explor(x-3,y-3,; return true; } } return true; } }

基于java的游戏坦克大战论文

基于j a v a的游戏坦克 大战论文 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

目录 1 2 5 1

第一章绪论 课题研究的背景 如今我们的生活节奏越来越快,每个人的生活压力也在不断变大,长期紧绷着神经容易产生心理和生理上的双重伤害,人们需要在工作和学习之外放松自己,玩玩游戏正是放松自己的方式之一。 坦克大战,一个众所周知的小游戏,曾经在红白机时代风靡一时。其界面简单,耐玩,关卡多,可玩性高,没有局限的年龄层。 Java是现在全球最时髦的开发工具之一,它拥有庞大且完善的类库,内置了其他语言需要靠库甚至是操作系统才能支持的功能,拥有一个虚拟机,总之,Java的出现,确实给整个程序界带来了巨大的冲击,也许现在还无法准确评估Java为整个IT业带来的影响,但是有一点毋庸置疑—Java将不可避免的影响一带程序员。 使用Java作为开发工具,来做坦克大战这个小游戏,是一种很理性的选择。Java游戏可以在本地桌面系统下运行,也可以在Web浏览器下运行。 我在大学四年中学到了很多计算机的知识,JAVA语言,软件工程,数据结构,软件工程等课程。如今我将用我所学的知识来完成一个坦克大战游戏,来锻炼自己的动手能力,独立作出一个小程序。 课题研究的任务 本文中所做的主要工作如下: (1)介绍了制作坦克大战游戏的意义和目的。 (2)设计坦克大战游戏各个类,实现各类效果和目标。 (3)分析并解决游戏中的若干技术问题。 (4)完成坦克大战游戏,进行测试并分析结果.

第二章系统分析 课题的可行性分析 1、课题要求 (1)与实践活动和相关的文件和资料由教师提供。 (2)本课题要求学生有熟练的Java开发能力,有较强的自学能力。 (3)具体问题再做详细调查研究并与指导老师面谈。 2、可行性分析 技术可行性:游戏对机器没有多大要求,现在无论什么电脑,只要能安装J2SDK,就能在电脑上开发这款游戏。制作出来的游戏可以在本地桌面运行,也可在WEB上运行,现在JAVA语言非常成熟,完全能够完成这个游戏。 经济可行性:开发这个游戏除了耗费自己的时间和精力以外,不需要其他的资金问题,完成后放到网上开放下载,无需任何费用,有兴趣的人可以自己下载来玩。 需求分析 在游戏中需要实现的功能: (1)能够通过键盘自由控制坦克移动和发射子弹; (2)敌方坦克能够随机移动和随机发射子弹; (3)子弹和不同阵营坦克碰撞后会产生爆炸; (4)消灭敌方坦克后会有个计分板记录玩家得分 (5)游戏进行到一半时可以暂停退出,下次打开游戏时选继续游戏可以继续之前的游戏。 第三章系统总体设计 游戏总体流程设计 开始新游戏时,先进行初始化,然后调用敌方坦克类和我方坦克类,实现键盘监听功能,战场显示所有坦克的移动,发射子弹。判断子弹和敌方坦克的碰撞,调用爆炸类,调用记录类,修改玩家总得分。

(完整版)JAVA课程设计_基于mysql的学生信息管理系统毕业论文

1.目录 概述 (3) 一、课题介绍 (3) 二、目的和要求 (3) 三、任务计划 (3) 需求分析 (5) 一、学生管理系统的发展现状 (5) 二、系统功能分析 (5) 三、系统结构框图 (5) 数据库设计 (7) 一、创建数据表的结构 (7) 二、各表功能及其关系 (7) 系统模块功能的实现与界面设计 (8) 一、系统主要模块 (8) 二、欢迎界面 (9) 三、主菜单界面 (9) 四、子菜单 (10) 五、学生信息录入 (11) 六、学生信息查找 (12) 七、学生信息删除 (13) 八、学生信息修改 (14)

课程设计心得 (15) 一、程序结构设计培养 (15) 二、书写习惯养成 (15) 三、注意程序简洁 (15) 总结 (16) 参考文献 (17) 附录:项目源代码 (18) 一、数据库连接(D B C ONNECTION.JAVA) (18) 二、学生信息数据库管理(S TUDENT_D AO.JAVA) (18) 三、欢迎界面(W ELCOME.JAVA) (23) 四、主菜单界面(M ENU.JAVA) (24) 五、子菜单界面(S ON_M ENU.JAVA) (27) 六、添加功能(A DD_M ENU.JAVA) (31) 七、查找功能(F IND_M ENU.JAVA) (34) 八、删除功能(D ELET_M ENU.JAVA) (36) 九、修改功能(C HANGE_M ENU.JAVA) (38)

概述 一、课题介绍 本次课程设计要求实现一个面向学生信息的管理系统。学生信息系统是一个非常通用的管理系统。很多大、中、小学校都需要拥有自己的学生档案管理系统,以便对本校学生的基本信息和学习情况进行管理,另一方面,较完整的学校信息管理系统同样也需要有学生信息管理系统的支持。 由通用的学生相关数据分析可知,系统包括院系管理、学生基本信息管理、课程管理、学生从成绩管理等主要功能。 该系统要求使用JA V A和MySQL作为开发工具和数据库管理系统,因此,系统设计涉及系统功能设计、数据库设计和系统界面等几个方面内容。 二、目的和要求 2.了解JA V A语言的特点及使用的范围,掌握开发软件平台的搭建。 3.要求使用JA V A和MySQL开发一个学生信息管理系统,系统主要 功能如下: 1)院系信息管理 院系系统信息的录入,包括院系编号、院系名称等信息; 院系信息的修改、删除、查询。 2)学生基本信息管理 学生基本信息的录入,包括学号、姓名、性别、出生日期、所在院系、班级等信息;

基于JAVA局域网聊天软件_毕业设计论文-

本科毕业论文(毕业设计) 题目:局域网聊天软件 系院: 学生姓名: 学号: 专业: 年级: 完成日期: 指导教师:

摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。 关键字:多线程;客户机/服务器;JA V A ;Socket ;Eclipse ;TCP/IP

Abstract as the network become more and more developed, people become more and more lean to the network, and can not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ.Java network programming based on the power, the use of Java designed to prepare graduates a chat system. In general, the majority of the chat tool for client and server program in addition to server-side storage of customer data for the database,the system uses a client / server architecture model the adoption of Java provided Socket class connect client and server and between the client and server communicate with each other, as the chat is to provide point-to-multipoint and multi-threaded Java function to be completed by using multi-threaded chat and more point-to-multipoint, database management system with SQL Server2000 the completion and adoption of JDBC-ODBC Bridge access the database. The system built on the JAVA platform, the system design using object-oriented technology and object-oriented design principles. System uses the C / S structure, client and client-side and server-side client and send messages through Socket. The use of JAVA language, development tools using Eclipse. Design and Implementation of server-side process, the use of multi-threading technology, which can process in a single run at the same time a number of different threads, the implementation of different tasks. Procedures greatly enhanced the use of server resources. Chat system will allow people to complete chat to more friends,and the system can add, delete somebody,can deal with new user registration, send messages, receive messages and so on. Keywords : Multithreading ; Client/Server ;JA V A ;Socket ;Eclipse ;TCP/IP

届毕业设计论文工作总结

2006 届毕业设计(论文)工作总结 、基本情况 2006 届毕业设计(论文)工作自2005 年12 月开始准备,到6 月29 日全面答辩完毕,历时半年,基本情况如下: 1 、参加毕业设计(论文)的毕业生共有3807 名,指导教师共1229 名,其职称比例为: 教授:365 人,占29.7% 副教授:480 人,占39.1% 讲师:380 人,占30.9% 助教:4 人,占0.3% 2 、毕业设计(论文)选题共计3581 个,课题来源及比例为:国家重点项 目:573 个,占16.0% 学校科研任务:231 个,占6.5% 校外协作项目:462 个,占12.9% 实验室建设:106 个,占3.0% 就业单位项目:55 个,占1.5% 自选:2154 个,占60.2% (2、的数据由于各院填写的毕业设计任务审核表不很完整,仅作参考) 3、学生毕业设计(论文)成绩比例如下: 优:800 人,占21.0% 良:2394 人,占62.9% 中:489 人,占12.8% 及格:106 人,占2.8% 不及格:18 人,占 0.5% 二、过程管理 1 、2006 届毕业设计(论文)工作自2005 年1 2 月开始,教务处组织各学院做了以下工作:毕业设计资格认证的统计、审查、备案工作;落实题目、开好选题

审议会;选派合格的指导教师;认真开好毕业设计动员会;明确指导教师应该做好的准备工作和学生需要阅读的有关资料;认真填写“毕业设计(论文)任务书”和“毕业设计(论文)任务审核表” 。6 月初,下发《关于毕业设计(论文)后期工作安排的通知》,安排抽查答辩的有关事宜:各学院上报抽查答辩的时间、地点、答辩领导小组成员名单和学生名册,发放抽查答辩意见反馈表等。6 月中下旬,安排普查评估的有关事宜,聘请149 名专家对全校所有毕业论文进行了认真细致地普查,普查工作按照普查提纲有序进行。 2 、做到指导教师和毕业班学生人手一册《毕业设计(论文)质量规范》,并要求各学院认真执行规范。 3、5 月底分别在东、西校区举办为期三天的优秀毕业设计(论文)展,主要展出教育部编辑出版的各专业《毕业设计指导手册》和2005 届优秀毕业论文文本及其图纸等,供毕业班学生参观学习。 4、抽查答辩时间安排在6 月27 、28、29 日,答辩组成员、多数指导教师和学生均能按时到场,评委们评审也比较公正。督导专家和教务处有关人员也参加了抽查答辩,并提出了意见和建议。 5、各学院对毕业设计工作都做了认真的总结,对普查评估中发现的问题及时予以纠正。 总体的看来,在教务处和院系高度重视下,2006 届毕业设计(论文)的各个环节把握较好,毕业设计(论文)整体质量较好,但个别学院对此项工作重视不足,仍存在一些问题。 三、问题与建议 (一)毕业设计(论文)的时间得不到保证: 毕业设计(论文)第七学期末学院开始学生选题、选派指导教师、收集资料等

funcode C++课程设计坦克大战

课程设计一坦克大战 一、游戏介绍 相信大部分同学都玩过或看过“坦克大战”这款经典游戏。现在,就由我们自己动手来开发它。只要大家具备了C++语言和面向对象的基础知识,然后按照实验指南的指导一步一步进行下去,相信我们每个同学都能把这款经典游戏做出来。 二、实验目标 综合运用C++及其面向对象的知识开发一款小游戏。 三、实验内容 在一个战场上,玩家控制坦克,消灭敌方坦克,并防止敌方坦克摧毁我方基地。游戏的具体要求如下: 1、游戏有一个初始页面,如下图。 2、按下任意键开始游戏,玩家控制坦克在战场上穿梭,碰到墙时,不能通过。 3、敌方坦克自由移动,每隔2秒改变一个方向,每隔3秒发射一发子弹。 4、敌方坦克每隔5秒出现一辆,从屏幕上方的左、中、右三个位置依次出现。 5、当玩家被消灭或者我方基地被摧毁或者游戏时间大于30秒的时候,游戏结束。 游戏开始前 进入游戏

四、游戏的整体框架 五、实验指南 实验准备 打开FunCode,创建一个新的C++项目。注意:项目名称必须为英文和数字,且不能有空格。 点击“项目”→“导入地图模板”,从对话框中选取名称为TankWar的模板导入。导入成功后,界面如下: 实验一游戏开始 【实验内容】 1、设置游戏标题 2、按空格键,提示图片消失,游戏进入开始状态. 【实验运行结果】 游戏开始前 按下空格键后 【实验思路】

按下空格键是键盘按下事件,可在CSystem::OnKeyDown函数中编写响应代码。为了保证程序结构的清晰、一致,更好的办法是在CGameMain类中添加一个相应的键盘按下事件处理函数,然后在CSystem::OnMouseClick函数中进行调用。 g_GameMain是CGameMain类的对象,它是全局变量,在程序运行时最先被创建。【实验指导】 1、C++程序的执行入口是主函数。FunCode的主函数名称叫WinMain,写在Main.cpp 文件中。CSystem::SetWindowTitle是设置程序运行窗口标题的函数,修改如下:CSystem::SetWindowTitle("坦克大战"); 2、参考CSystem::OnKeyDown函数,为CGameMain类创建一个OnKeyDown函数。 CGameMain类的头文件是LessonX.h文件,实现代码写在LessonX.cpp文件中。因此,先在LessonX.h文件对函数进行声明。函数的返回值和参数列表都与 CSystem::OnKeyDown函数保持一致。访问权限应该是public。代码如下: voidOnKeyDown(constintiKey,constboolbAltPress,constboolbShiftPress,cons tboolbCtrlPress); 3、接着,在Lesson.cpp文件中对该函数进行定义: voidCGameMain::OnKeyDown(constintiKey,constboolbAltPress,constboolbShif tPress,constboolbCtrlPress) { }

坦克大战游戏设计与制作

目录 1 需求分析 (1) 1.1 用户简介 (1) 1.2 项目目的和目标 (1) 1.3 功能和环境 (1) 2 系统设计 (2) 3 系统实现 (3) 3.1系统框架设计与实现 (3) 3.1.1 系统框架功能概述 (3) 3.1.2 系统框架实现过程 (3) 3.2 地图模块设计与实现 (5) 3.2.1 地图模块功能概述 (5) 3.2.2 地图模块实现过程 (5) 3.3坦克模型模块设计与实现 (6) 3.3.1 坦克模块功能概述 (6) 3.3.2 坦克模块实现过程 (7) 3.4敌方坦克模块设计与实现 (8) 3.5炮弹模块设计与实现 (8) 3.5.1 炮弹模块实现过程 (8) 3.6炮弹碰撞检测模块设计与实现 (9) 3.6.1 炮弹碰撞检测模块功能概述 (9) 3.6.2 炮弹碰撞检测模块实现过程 (9) 3.7信息面板模块设计与实现 (10) 3.7.1 信息面板模块功能概述 (10) 3.7.2 信息面板模块实现过程 (11) 4 实训总结 (13) 附录 (14)

1 需求分析 1.1 用户简介 近年来,手机游戏市场规模迅速增长,市场潜力巨大,同时,我国政府在大力扶持手机游戏行业,特别是对我国本土游戏企业的扶持,手机游戏已被列入国家863计划。积极参与游戏开发的国内企业可享受政府税收优惠和资金支持,同时,政府也加紧了对外国游戏开发商的管理制度。除此之外,我国政府各部门还采取了各种各样的形式来帮助发展国内手机游戏行业,手机游戏产业正高速发展。 用户角色大致分为:玩家 1.2 项目目的和目标 随着科技的发展,手机的功能越来越强大,手机已经成为大多数人生活的一部分,人们渐渐习惯于将手机作为新的娱乐工具,而游戏也已成为手机上不可缺少的功能。如今手机游戏的规划越来越复杂,画而越来越精美,娱乐性和交互性也越来越强,已经可以和当年的“Gameboy”掌上游戏相媲。 因此,开发这样一个娱乐游戏成为很有必要的事情。经过思考,我们设计了一块一款“坦克大战”的游戏以丰富人们的娱乐生活。 1.3 功能和环境 功能:坦克大战共分为两个对象,分别是用户和电脑。用户可以通过控制玩家的坦克来摧毁敌方的坦克保护自己的“家”,把所有的敌方坦克消灭完达到胜利。敌方的坦克在初始的时候是默认三十个的(这可以自己设置),当然,如果玩家被敌方坦克的子弹打中,那就gameover。 运行环境:Java虚拟机。

毕业设计(论文)工作总结

本科毕业设计(论文) 工作总结 学院:材料科学与工程 课题名称:梳状分子聚酰胺-胺(PAMAM)基凝胶 材料的制备和吸附性能的研究专业(方向):材料科学与工程(高分子方向) 班级:材料12-5班 学生:宁玲贵 指导教师:周立 日期:2016年5月29日

毕业设计论文工作总结: 毕业设计已经落幕,在这段日子里我真的感触颇深,受益匪浅,丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,对聚酰胺-胺(PAMAM)以及凝胶材料有了更加深入的了解。通过毕业设计这个课程,我可以很好地把自己在课堂上学习到的知识运用到实践中,不仅对所学到的知识进一步深化,而且从各方面提高了自己的能力。 本科毕业设计是我作为一名本科生完成学业的最后一次作业,它既是对在学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;是我在校期间向学校所交的最后一份综和性作业。 我的毕业设计工作主要包括以下几部分: (一)2月29日-3月10日:这段时间主要是查找论文相关资料,并对PAMAM 和凝胶材料的研究现状和发展趋势做一定的了解,从文献上以及老师的讲解中我深入地学习了PAMAM和凝胶材料的制备方法,并作好了相关重要知识的笔记,为接下来的实验作理论基础,同时进行开题报告、外文翻译书写等准备工作。 (二)3月11日-3月15 :在这几天的时间里,我对实验室有了一定的了解,并在实验室是药品柜里找到了自己试验所需的药品,对药品的的性能,毒性,危害等做了一定的了解。 (三)3月16日-4月15日:在这段时间里我参照文献,采用发散法,以乙二胺为核,利用乙二胺与甲基丙烯酸甲脂交替进行迈克尔加成和酰胺化缩合反应制备了代数为2的PAMAM(G2.0PAMAM)。在这个过程都是重复性的操作,需要耐心。 (四)4月16日-5月15日:对合成的G2.0 PAMAM进行FTIR,SEM表征,以便了解PAMAM的结构。我并熟悉地掌握了红外仪器的实验红外谱图的处理。除此之外,我们利用G2.0PAMAM与环氧氯丙烷反应,制备出了多氨基PAMAM 凝胶。对多氨基PAMAM凝胶进行吸附性能测试;我们选取了MO, TTZ, MB, MV 四种染料以及Cr(VI)对PAMAM凝胶进行了吸附性能的测试,发现多氨基凝胶对阴离子染料有高效的吸附效果,并研究了吸附时间,浓度,pH,离子浓度对PAMAM 凝胶材料吸附MO, TTZ的吸附效果的影响。此外,选取MO进行再生吸附实验,发现多氨基的可再生吸附性能较好。 在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,

Java语言坦克大战游戏设计(附有代码和图片)

JISHOU UNIVERSITY 本科生毕业设计 题目:基于java语言坦克大战游戏开发作者: 学号: 所属学院:信息科学与工程学院 专业年级: 指导教师:职称: 完成时间: 吉首大学教务处制

目录 基于java语言坦克大战游戏开发 (1) 摘要 (1) Based on the development of Java language Tank Wars Game (2) 第一章游戏简要说明 (3) 第二章开发环境介绍 (4) 2.1 开发环境 (4) 2.2 java语言特点简介 (4) 2.3 Eclipse开发工具的简介 (5) 第三章系统总体设计 (6) 3.1程序功能的总和 (6) 3.2主体模块 (6) 3.3子弹模块 (6) 3.4坦克模块 (7) 3.5 墙模块 (7) 3.6血液模块 (7) 3.7爆炸模块 (8) 第四章游戏详细设计过程 (9) 4.1创建游戏窗口 (9) 4.2改变游戏背景颜色。 (11) 4.3创建坦克 (11) 4.4 让坦克动起来 (12) 4.5改变窗口的大小 (13) 4.6让坦克受控制 (14) 4.7创建一个Tank类 (15) 4.8让坦克向8个方向移动 (16)

4.9修改4.8中所设计的不足 (18) 4.10添加子弹类 (19) 4.11根据己方坦克的位置,打出子弹 (21) 4.12修改坦克停下来不能打出子弹的问题 (21) 4.13让坦克能够打出多发子弹 (23) 4.14解决炮弹不消亡和坦克出界的问题 (23) 4.15增加敌方坦克 (24) 4.16击毙出现的敌方坦克 (25) 4.17加入爆炸效果 (26) 4.18添加多辆敌方坦克 (27) 4.19让敌方坦克智能化 (29) 4.20建立游戏障碍物 (31) 4.21阻止坦克互相穿越 (32) 4.22为我方坦克添加大招和血条 (33) 4.23添加血块 (34) 4.24重新载入敌军或我军坦克 (35) 4.25加入图片 (35) 第五章游戏的可行性测试 (37) 5.1游戏界面介绍 (37) 5.2游戏运行测试 (40) 第六章总结 (43) 参考文献 (44)

坦克大战游戏程序课程设计

《程序设计应用基础》课程设计计划书

坦克大战游戏 1引言 学习了C语言程序设计之后,我们粗略的掌握了程序设计的基本思路和要求,为了更加熟练的掌握这门计算机语言,我们选择编译一个经典小游戏——坦克大战。通过课程设计提高我们的动手能力,把理论知识运用到实践当中。在课程设计中,C语言的语法和逻辑严谨,对于初学者而言,有时忘记一个逗号或者分号整个程序便运行不了,经过了反复的调试,修改,最终形成可执行的程序。在这个过程中,通过不断的练习,我们对C语言的掌握程度有明显的提高,同时,也锻炼了我们的头脑,使我们的思维更加科学严谨。 2设计方案 2.1设计思路 坦克大战游戏,一共两关。不同的关卡,游戏地图、敌方坦克出现的种类不一样。敌方坦克地图上最多存在4辆,击杀后会出现新坦克直至补足4个,当击杀坦克一定数值则敌方新坦克不会再增加。击杀完所有坦克则胜利过关。己方坦克也有复活次数,用完则失败。另地图正下方有己方老家,若被敌方坦克攻破则游戏失败。 3程序设计与实施 3.1程序的主要模块 整个程序分为里表两大部分。 里部分由41*41的int地图数组组成,每个元素代表了该以该数组元素行列下标为地图坐标y,x那个单元的情况,不同的地图障碍物在该数组有不同的值,坦克在地图上占3*3个单元,在地图数组内相应坐标的3*3个元素内也对应特殊的值。由地图数组值可以读出该坦克信息。 表部分则是根据里部分的地图数组通过gotoxy和printf函数在命令行界面打印出相应字符以构成游戏界面的。 程序中的每个函数操作都是通过里部分(地图数组)判定,然后对里部分(地图数组)操作,再由里部改变外部,由gotoxy和printf函数将可视化界面呈现给玩家。也就是游戏主体函数内里表部分是一起操作的,不分开。 对于函数分类,程序又可分为三大类。一类游戏辅助函数。一个子弹系统,一个坦克系统。子弹和坦克分别都是独立运作的系统,有少量信息交换。 3.2 主函数及其流程图 主函数包括打印地图,实现游戏内置调节游戏速度的功能,判断坦克类型,判断敌我坦克是否存活,判断游戏胜负。 3

毕业设计论文 java

摘要 JAVA已经从一种平台无关的编程语言演变成一种与厂商及平台无关的健壮的服务器端技术,促使IT业界深入发掘以Web为核心的应用程序的巨大潜力。J2ME 的出现使这一变化达到了一种新的高度。J2ME,简称Java2平台袖珍版( Java 2 Platform ,Micro Edition (J2ME) ),是SUN公司在J2SE和J2EE之后,致力于消费产品和嵌入式设备的最佳解决方案。作为JAVA的三个版本之一,J2ME在无线编程技术中正发挥着它独特的作用。J2ME为在小型电子设备上创建性能卓越的网络应用提供了一套完整的解决方案。它也使设备制造商、服务提供商及应用开发人员为他们的用户发布新的软件应用成为可能。 本篇论文共分为七个部分:包括绪论、J2ME技术概览、游戏设计的需求分析、“Pocket Boxing”手机游戏开发制作、手机游戏开发存在的困难、J2ME手机游戏前景展望和结论。其中第四部分“Pocket Boxing手机游戏开发制作”是本篇论文的重点。整篇论文都是围绕着这一部分来展开论述的,在这一部分里详细介绍一款手机游戏“Pocket Boxing”的开发全过程和开发过程中存在的疑难问题。其中包括:游戏事件、游戏API等以及对事件的处理,另外在游戏描绘处理部分也将作为重点进行介绍。 通过对J2ME的详细介绍我们可以从中了解到其自身的作用,近年来,随着JAVA手机的诞生,其无可替代的灵活性与轻便性致使JAVA手机游戏成为游戏市场的又一亮点,它的前景无可限量,必将在我们以后的生活中发挥着重要的作用。 关键字:J2ME, MIDP, 游戏编程, 事件, 描绘处理

毕业论文设计学习总结

篇一:《毕业设计(论文)工作总结》 辽宁工业 大学 毕业设计(论文) 学生工作总结 题目 汽车与工程学院(系)交通运输专业092班学生姓名曹春阳 学号指导教师 2013 年6月22 日

2 篇二:《毕业设计总结与体会范文》 总结与体会{毕业论文设计学习总结}. 随着时间将近过去了一个半月,毕业设计也接近了尾声。经过几周的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,无论是在以后的工作还是生活中都应该不断的学习,努力提高自己知识和综合素质。同时也明白了人生不可能存在一帆风顺的事,只有自己勇敢地面对人生中的每一个挫折和失败,才能通往自己的罗马大道。 在设计的过程中我总会遇到这样那样的问题,我有失落过,烦恼过,悲伤过,但我明白这又是我人生中的一大挑战,角色的转换,这除了有较强的适应力和乐观的生活态度外,更重要的是得益于两年的学习积累和技能的培养。在这里我知

道我的将来会有光辉灿烂的一天。在这次毕业设计里,给我仅是初步的经验积累,对于迈向社会远远不够的,我必须做出更大的努力。 虽然在完成毕业设计的过程中有过失落,有过烦恼,有过悲伤,但在这次毕业设计中也使我们的同学间的关系更进一步,在此期间同学之间互相帮助,有什么不懂的大家在一起商量,一起讨论,听听不同的看法不同的意见,这使我们能更好的理解知识,透彻知识,运用知识,因此在这里我要非常感谢帮助我的同学,谢谢你们的帮助,谢谢你们! 在毕业设计完成的过程里,我更明白了要做好人生规划的重要性,在此我要有以下几点规划 一、继续学习,虽然我们即将步入社会,但我们绝不能忘记学习,不仅仅要学习知识,学习技能,还要学习如何与人相处,即将步入社会的我们光有知识技能是不能在这样充满竞争的社会好好发展我们的未来的了,所以我们要学习与人相处,与人共事。 二、也许我们有知识,有技术,但我们缺少的是经验,实际动手的经验,所以我们步入社会后,要不断的积累经验,不断的实践,只有这样我才能在掌握知识的同时把握 更多的技术,这样我们才能有更好的发展空间。

java坦克大战毕业设计论文

基于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

相关主题
文本预览
相关文档 最新文档