基于java的飞机大战游戏的设计与实现论文内容摘要:

,广泛应用于个人 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 在全球云计算和移动互联网的产业环境下, Java 更具备了 显著优势和广阔前景。 Java 编程语言 的风格十分接近 C、 C++语言。 Java 是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对 象技术的核心。 Java 舍弃了 C ++语言中容易引起错误的 指针 (以引用取代)、运算符重载( operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。 在 Java 版本中, Java 又引入了泛型编程( Generic Programming)、类型安全的枚举、不定长参数和自动装 /拆箱等语言特性。 Java 不同于一般的编译执行 计算机语言 和解释执行计算机语言。 它首先将 源代码编译成 二进制 字节码( bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。 从而实现了“一次编译、到处执行” 的跨平台特性。 不过,每次的执行编译后的字 太原理工大学毕业设计 (论文 )用纸 5 节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 平台无关性是指 Java 能运行于不同的平台。 Java 引进虚拟机 原理,并运行于虚拟机,实现不同平台的 Java 接口之间。 使用 Java 编写的程序能在世界范围内共享。 Java的数据类型与 机器无关, Java 虚拟机( Java Virtual Machine)是建立在硬件和操作系统之上,实现 Java 二进制代码的解释执行功能, 提供于不同平台的接口的。 Java 的编程类似 C++,学习过 C++的读者将很快掌握 Java 的精髓。 Java 舍弃了 C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。 Java 对程序提供了安全管理器,防止程序的非法访问。 Java 吸取了 C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。 类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。 程序员只需把主要精力用在类和接口的设计和应用上。 Java 提供了众多的一般对象的类,通过继承即可使用父类的方法。 在 Java 中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。 Java提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类为 Object 类, Object类功能强大,经常会使用到它及其它派生的子类。 Java 建立在扩展 TCP/IP 网络平台上。 库函数提供了用 HTTP 和 FTP 协议传送和接受信息的方法。 这使得程序员使用网络上的文件和使用本机文件一样容易。 Java 致力于检查程序在编译和运行时的错误。 类型检查帮助检查出许多开发早期出现的错误。 Java 自己操纵内存减少 了内存出错的可能性。 Java 还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发 Java 应用程序的周期。 并且 Java还提供了 Null 指针检测、数组边界检测、异常出口、 Byte code 校验等功能。 Java 语言的特点与优势 ( 1) 平台无关性 平台无关性是指 Java 能运行于不同的平台。 Java 引进虚拟机 原理,并运行于虚拟机,实现不同平台的 Java 接口之间。 使用 Java 编写的程序能在世界范围内共享。 Java的数据类型与 机器无关, Java 虚拟机( Java Virtual Machine)是建立在硬件和操作系统之上,实现 Java 二进制代码的解释执行功能, 提供于不同平台的接口的。 ( 2) 安全性 Java 的编程类似 C++,学习过 C++的读者将很快掌握 Java 的精髓。 Java 舍弃了 C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。 Java 对程序提供了安全管理器,防止程序的非法访问。 ( 3) 面向对象 Java 吸取了 C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。 类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。 程序员只需把主要精力用在类和接口的设计和应用上。 Java 提供了众多的一般对象的类,通过继承即可使用父类的方法。 在 Java 中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。 Java提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类为 Object 类, Object类功能强大,经常会使用到它及其它派生的子类。 ( 4) 分布式 太原理工大学毕业设计 (论文 )用纸 6 Java 建立在扩展 TCP/IP 网络平台上。 库函数 提供了用 HTTP 和 FTP 协议传送和接受信息的方法。 这使得程序员使用网络上的文件和使用本机文件一样容易。 ( 5) 健壮性 Java 致力于检查程序在编译和运行时的错误。 类型检查帮助检查出许多开发早期出现的错误。 Java 自己操纵内存减少了内存出错的可能性。 Java 还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发 Java 应用程序的周期。 并且 Java还提供了 Null 指针检测、数组边界检测、异常出口、 Byte code 校验等功能。 java 技术在游戏开发中的应用 ( 1) 绘图 技术 Applet程序中所采用的 AWT的绘图机制主要涉及三个方法: paint()方法、 update()方法和 repaint()方法, update()方法和 paint()方法都有一个 Graphics 类参数。 Graphics 是画图的关键,它可以支持两种绘图:一种是基本的绘图,如:画线、矩形、圆等;另一种是画图象,主要用于动画制作。 要进行绘图,首先要找到一个 Graphics 类的对象。 update()方法和 paint()方法所传递的参数都是 Graphics 类的对象,因此主要是通过重载它们来进行绘图 ,这是在动画程序中经常使用的方法。 我们还可以通过 getGraphics()方法得到一个 Graphics类的对象,这个对象和 update()方法和 paint()方法中所传递的对象一样,都是该成员所对应的 Graphics 类的对象。 得到了 Graphics 类的对象,就可使用各种绘图方法。 Graphics 中提供的图形绘制方法有: paint( ):进行绘图的具体操作,必须有程序员重写; update( ):用于更新图形,先清除背景、前景,再调用 paint(); repaint( ):用于重绘图形,在组件外形发生变化, 即大小改变或位置移动 repaint( )方法立即被系统自动调用,而实际上 repaint()方法是自动调用 update()方法。 ( 2) 游戏开发中的交互 一个优秀的游戏必定是与玩家不断的沟通,给予玩家充分的操作时间,而游戏又必须快速地,正确的对玩家的动作作出反映,否则这样的游戏,不能称为一个好游戏。 所以说,游戏开发中的交互与其他技术有着相同的地位,是一个游戏必备的核心。 在 Java游戏的开发中,往往使用事件处理器来进行设计。 事件:用户对程序的某一种功能性操作。 Java 中的事件主要有两种 :组件类事件、动作类事件。 事件编程:用户编程定义每个特定事件发生时程序应做出何种响应,并且这些响应代码会在对应的事件发生时由系统自动调用。 事件源是产出事件的组件。 监听器是对组件所产生的事件作出具体响应的代吗,即事件产出与处理分别由两个不同类加以编程实现。 事件处理机制是 AWT 组件自身不编程处理相应的事件,面是交由事件监听器处理。 事件适配器:由于事件监听器接口是 Abstract 类型,意谓着实现该接口的类应全部实现其各个成员函数,但实际应用中可能只需处理某些事件响应代码;此时再采用实现事件监听 器接口可能会导致编程复杂。 JDK 中提供事件适配器方式来实现事件编程。 ( 3) 基于 AWT 及 SWING 的游戏界面开发 抽象窗口工具包 AWT (Abstract Window Toolkit) 是 API 为 Java 程序提供的建立图形用户界面 GUI (Graphics User Interface)工具集, AWT 可用于 Java 的 applet 和 太原理工大学毕业设计 (论文 )用纸 7 applications 中。 它支持图形用户界面编程的功能包括: 用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器,可以进行灵活的窗口 布局而与特定窗口的尺寸和屏幕分辨率无关;数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴。 AWT 是 Swing 的基础。 Swing 的产生主要原因就是 AWT 不能满足图形化用户界面发展的需要。 AWT 设计的初衷是支持开发小应用程序的简单用户界面。 随着发展的需要,Swing 出现了, Swing 组件几乎都是轻量组件,与重量组件相比,没有本地的对等组件,不像重量组件要在它们自己的本地不透明窗体中绘制,轻量组件在它们的重量组件的窗口中绘制。 Swing 是由 100%纯 Java 实现的, Swing 组件是用 Java 实现的轻 量级( lightweight)组件,没有本地代码,不依赖操作系统的支持,这是它与 AWT 组件的最大区别。 由于 AWT 组件通过与具体平台相关的对等类( Peer)实现,因此 Swing比 AWT 组件具有更强的实用性。 Swing 在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。 Swing 采用了一种 MVC 的设计范式,即”模型 视图 控制”。 ( 4) 多线程技术的应用 线程简介:进程就是程序的运行时的一个实例。 线程可以看作单独地占有 CPU 时间来执行相应的代码的。 对早期的计算机(如 DOS)而 言,线程既是进程,进程既是进程,因为它是单线程的。 当然一个程序可以是多线程的,多线程的各个线程看上去像是并行地独自完成各自的工作,就像一台一台计算机上运行着多个处理机一样。 在多处理机计算机上实现多线程时,它们确实可以并行工作,而且采用适当的分时策略可以大大提高程序运行的效率。 但是二者还是有较大的不同的,线程是共享地址空间的,也就是说多线程可以同时读取相同的地址空间,并且利用这个空间进行交换数据。 Java 实现多线程的过程:与其他语言不一样的是,线程的观念在 Java 是语言中是重要的,根深蒂固的,因为 在 Java 语言中的线程系统是 Java 语言自建的, Java 中有专门的支持多线程的 API 库。 在使用 Java 创建线程的时候,你可以生成一个 Thread类或者他的子类对象,并给这个对象发送 start()消息(程序可以向任何一个派生自Runnable 接口的类对象发送 start() 消息的),这样一来程序会一直执行,直到 run返回为止,此时该线程就死掉了。 ( 5) Java 网络技术的应用 Java 最初是作为一种网络编程语言出现的,它能够使用网络上的各种资源和数据,与服务器建立各种传输通道,将自己的数据传 送到网络的各个地方。 你可以用 Java 很轻松地完成这些,因为 Java 类库提供了很强大的网络功能。 Java 中有关网络方面的功能都定义在 程序包中。 Java 所提供的网络功能可大致分为三大类: (1)URL 和 URLConnection 这是三大类功能中最高级的一种。 通过 URL 的网络资源表达方式,很容易确定网络上数据的位置。 利用 URL 的表示和建立, Java 程序可以直接读入网络上所放的数据,或把自己的数据传送到网络的另一端。 (2)Socket 所谓 Socket,可以想像成两个不同 的程序通过网络的通道,而这是传统网络程序中最常用的方法。 一般在 TCP/IP 网络协议下的客户服务器软件采用 Socket作为交互的方式。 (3)Datagram 是这些。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。