基于Java语言的游戏软件开发含源文件Word文档格式.doc
《基于Java语言的游戏软件开发含源文件Word文档格式.doc》由会员分享,可在线阅读,更多相关《基于Java语言的游戏软件开发含源文件Word文档格式.doc(26页珍藏版)》请在冰豆网上搜索。
2.2可行性分析
第三章系统概要设计
3.1设计目标
3.2系统功能模块
第四章系统详细设计
4.1程序设计
4.2各功能界面截图
第五章系统测试
5.1测试的意义
5.2测试过程
5.3测试结果
第六章总结
参考文献
绪论
Java语言简介
Java的发展和历史
Java的诞生得益于对家用电器的芯片的研制,开始时,开发者想用C++语言来开发电器的芯片,但是,由于芯片的种类各不相同,因此,程序要进行多次编译。
尤其是C++中的指针操作,稍有不慎,就会出现问题。
程序可以出错,但是家用电器不能出错误,为此,开发者将C++语言进行简化,去掉指针操作,去掉运算符重载,去掉C++中的多继承,得到了Java语言,将它变成了一种解释执行的语言,并在每个芯片上装上一个Java虚拟机。
刚开始时,Java语言被称为Oak语言(橡树语言)
Java语言现在逐渐成熟起来,它的类也已经进千个了,而且还可以通过第三方购买中间件,为Java语言的发展提供了良好的发展前景,同时它也是跨平台的语言,因此许多软件开发商及硬件开发商也争先恐后地想搭上Java语言的快车,都声称支持Java语言,它对微软发起了有力的挑战,而且Sun公司正努力开发Java芯片
Java语言的特点
Java是一种简单的,面向对象的,分布式的,健壮的,安全的,与平台无关的,多线程的,高性能的,动态程序设计语言。
1.简单易学
Java语言虽起源于C++,但是去掉了C++语言中难于掌握的指针操作,内存管理非常简单,如果要释放内存资源,你仅需要让其对象的引用等于null,这样就使操作变得异常简单
2.面向对象
Java语言是面向对象的编程语言。
面向对象技术很好的解决了当今软件开发过程中新出现的种种传统的面向过程语言所不能处理的问题,包括软件开发的规模扩大,升级加快,维护量增大以及开发分工日益细化,专业化和标准化等。
面向对象技术的核心是以更接近于人类思维的方式建立计算机模型,它利用类和对象的机制将数据与其上的操作封装在一起,并通过统一的接口与外界交互,是反映现实世界实体的个各类在程序中能够独立、自治和继承。
3.分布式
Java包括一个支持HTTP(超文本传输协议)和FTP(文件传输协议)
等基于TCP/IP协议的子库,因此,Java应用程序可凭借URL(统一资源定位符)打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。
为分布式环境尤其是Internet提供了动态内容,无疑是一项非常宏达的工程,但是Java的语法特性可以很容易实现这项目标。
4.健壮性
Java致力于检查程序在编译和运行时的错误。
类型检查可以检查出许多开发早期出现的错误。
Java自行操作内存,减少了内存错误的可能性。
Java还实现了真数组,避免了覆盖数据的可能。
这些功能特征大大缩短了开发Java应用程序的周期。
Java提供null指针检测数组边界,进行异常出口字节代码校验。
5.安全稳定
对网络上应用程序的另一个要求是较高的安全可靠性。
用户通过网络获取并在本地运行的应用程序必须是可信赖的,不会充当病毒或者其他恶意操作的传播者而攻击本地的资源,同时它还应该是稳定的,轻易不会产生死机等错误,使得用户乐意使用。
6.平台无关
Java语言独特的运行机制使得它具有良好的二进制的可移植性,利用Java,开发人员可以编写出与具体平台无关,普遍适用的应用程序,大大降低了开发、维护和管理的开销,也就是一次编译,随处运行。
7.支持多线程
多线程是当今软件开发技术的又一重要成果,已成功应用在操作系统和应用开发等多个领域。
多线程技术允许同一个进程有两个或两个以上的执行线索,即同时做两件或多件事情,满足了一些复杂软件的需求。
Java不但内置多线程功能,而且定义了一些用于建立、管理多线程的类和方法,使得开发具有多线程功能的程序变得简单、容易和有效。
8.高性能
如果解释器的速度快,Java可以在运行时直接将目标代码翻译成机器指令。
Sun用直接解释器一秒钟内可调用300000个过程。
翻译目标代码的速度与C++的性能没什么区别。
9.动态性
Java的动态性是其面向对象设计方法的扩展,它允许程序动态地装入运行过程中所需要的类。
Java编译器将符号引用信息在字节码中保存下来并传递给解释器吗,再由解释器完成动态连接类后,将符号引用信息转换为数值偏移量。
这样,一个在存储器生成的对象不在编译过程中决定,而是延迟到运行时有解释器确定,这样对类中的变量和方法进行更新时就不至于影响现存的代码。
解释执行字节码时,这种符号信息的查找和转换过程进在一个新的名字出现时才进行一次,随后代码便可以全速执行。
在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。
Java平台简介
1998年12月,Sun发布了Java2平台—JDK1.2,这时Java发展是上的里程碑。
1999年6月,Sun公司重新组织Java平台的集成方法,并将Java企业级应用平台作为发展方向。
2004年,Sun发布JDK1.5更名为JDK5.0.2006年底,Sun再度推出JDK1.6(JDK6.0)。
如今,Java家族也已经有四个主要成员:
J2SE(Java2StandardEdition)用于工作站、PC机的Java标准平台,现改名为JavaSE;
J2EE(Java2EnterpriseEdition)可扩展的企业级应用平台,现改名为JavaEE;
J2ME(Java2MicroEdition)嵌入式电子设备Java应用平台,现改名为JavaME;
JavaFX是一种声明式的静态类型编程语言,专为喜欢在可视化编程中的Web脚本人员和应用程序开发人员量身定做,是Java新成员
Java程序的运行机制和Java虚拟机(JVM)
Java语言比较特殊,由Java语言编写的程序需要经过编译步骤,但是这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码文件(也就是.class文件)。
当然,这种字节码文件不是可执行的,必须使用Java解释器来解释执行。
因此,我们可以认为:
Java语言既是编译型语言,也是解释型语言。
或者说,Java语言既不是纯粹的编译型语言,也不是纯粹的解释型语言。
Java程序的执行过程必须经过先编译,后解释两个步骤,
Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM(JavaVirtualMachine)。
JVM是可运行JAVA字节码文件的虚拟计算机。
所有平台的JVM向编译器提供相同的编译接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,然后由虚拟机来解释执行。
在一些虚拟机的实现中,还会将虚拟机代码转换成特定系统的机器码执行,从而提高执行效率。
JVM是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域。
它负责执行指令,还要管理数据、内存和寄存器
Java开发环境搭建
首先进行JDK的安装,下载JDK安装包解压后进行环境变量的配置,配置步骤如下:
右击桌面上“我的电脑”图标,出现右键菜单;
单击“属性”菜单项,出现“系统属性”或“高级系统设置”对话框;
单击该对话框的“高级”选项,出现如图2所示的对话框。
单击“环境变量”按钮,将看到如图3所示的“环境变量”的对话框,通过该对话框可以修改或添加环境变量。
图2 图3
1.1开发环境
SunMicrosystems公司在推出Java语句的同时,推出了一套开发工具JDK。
Sun提供的基于字符模式的Java开发工具包JDK:
Java开发工具(JDK)是许多Java专家最初使用的开发环境。
Java是平台无关的语言是指用Java写的应用程序不用修改就可以在不同的软硬件平台上运行。
Java源程序编写可以借助于记事本,Editplus,UltraEdit等第三方编辑工具。
所有的Java文件编辑、编译、调试、解释运行都是通过使用字符命令来执行操作。
JDK由一个标准库和一组建立、测试及建立文档的Java实用程序组成。
其核心JavaAPI是一些预定义的类库,开发人员需要使用这些类来访问Java语言的功能。
JDK是整个Java的核心,包括了Java运行环境,一堆Java工具和Java基础的类库。
不论什么Java应用服务器实质都是内置了某个版本的JDK。
因此掌握JDK是学好Java的第一步。
JDK里面是Java类库和Java的语言规范,它提供的是无论是用何种开发软件写java程序都必须用到类库和java语言规范,没有JDK,你的java程序根本就不能用。
最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等待,其中IBM的JDK包含的JVM运行效率要比Sun的JDK包含的JVM高出许多。
而专门运行在X86平台的Jrocket在服务端运行效率也要比Sun的JDK好很多。
但是不管怎么说,还是需要把Sun的JDK掌握好。
但是在这里我借助的是一个编程软件MyEclipse来完成程序的编写与调试的
1.2应用环境
操作系统:
Windows7
应用环境:
JDK1.6
应用软件:
Myeclipse
游戏简介:
游戏中玩家通过鼠标来移动自己的飞机,打掉飞机或蜜蜂会获得分数和奖励,打掉一架飞机获得5分,打掉一只蜜蜂获得随机奖励:
一条命或者40次双倍火力,如果撞上敌机或蜜蜂,则会失去生命,同时双倍火力清零。
每撞到一次就生命值减1,当生命值为0时,游戏结束
shoots要满足以下几点要求:
1.鼠标点击界面游戏开始
2.鼠标移出界面游戏暂停再次移入继续开始
3.飞机跟随鼠标指针移动
4.打掉飞机就分值增加,打掉蜜蜂就奖励生命值或者双倍火力
Shoots游戏是一种简单的大众游戏,在实现游戏的过程中你需要对子弹与敌机或蜜蜂的碰撞做出判断,判断的处理可以由坐标的范围来完成;
如果碰撞就要做删除处理,通过记录碰撞的对象(对象是存放在数组中的)的下标可以对它进行删除操作;
以及在它们越界(超出画板范围的那些敌机和蜜蜂)后对它们要删除;
因为敌机和蜜蜂是不断生成的,会越来越多,而存放它们的是一个数组,这个数组不是固定的长度,会随着敌机和蜜蜂的数量的增加而进行扩容,所以如果不对越界的敌机和蜜蜂进行处理,数组会越来越大,从而占有更多的存储空间,而游戏运行也越来越慢;
另外实现子弹、敌机和蜜蜂的自动移动,需要对存放它们的数组遍历然后对每一个存放的对象的坐标属性进行加减操作;
而用鼠标来操作飞机就需要用到与鼠标移动相关的触发事件,在鼠标的点击,滑动,移出面板,移入面板同样都有与之相关的鼠标事件,通过这些事件来实现