基于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 是这些。基于java的飞机大战游戏的设计与实现论文
相关推荐
品 设备损坏 人员伤害 从未发生 执行公司劳动保护用品和保健品管理制度,工作人员必须正确穿戴劳保用品。 1 3 3 现场杂物、油污较多造成人员伤害 人员跌伤 从未发生 保持作业场所清洁干净 1 3 3 工艺过程风险分析 记录表 备煤车间工艺过程风险分析工艺过程风险分析记录表单位:备煤车间 工作岗位:煤场岗位 工作任务:卸煤作业序号工作步骤危害及潜在事件( 作业环境、人、物
促销形式 : 均以文化营销为核心,具体内容见“公关传播策略及公关传播计划部分”。 机密 第 9 页 20201215 锐智传媒 北京朝阳区安华里二区 13 号楼 邮编: 100011 电话: 010- 84242278- 8088 传真: 010- 84242278- 8001 网址: 五 、 公关传播 策略 品牌定 位 综合以上分析,我们认为,要在 2020 年将大理的全国 个性化旅游、
配合搞好各类财务工作。 “用友软件”使用手册,正确执行会计电算化的操作程序。 记帐凭证须审核后及时打印,并将原始凭证附到相关的记帐凭证中去。 外勤岗位责任制度 外勤采购是为师生服务,为学校教育工作的具体事务,具有一定的时间性,应本着勤俭办学,合理安排的原则,积极主动认真负责做好工作。 ,物品要验收入帐,做到物款相符,凭证齐全。 17。 、文件、教学材料的送取。 ,主动积极参加学校的突击任务。
的线程中。 敌方子弹仅需要扫描用户坦克,而用户坦克需要在每一步扫描所有的敌方坦克。 这需要对所有的对象有较好的控制。 另外,子弹在运行过程中也需要实时扫描是否 碰撞到了相关障碍物或屏幕边界。 如此过多的线程同时在本来效率就不高的 KVM 虚拟机上运行,也许会导致程序的缓慢。 5. 双方的坦克在前进时也需要考虑到是否碰撞到相关物体或对方坦克,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。
ML 5 提供了一些新的元素和属性,反映典型的现代用法 网站。 其中有些是技术上类似 div和span标签,但有一定含义,例如 nav(网站导航块)和 footer。 这种标签将有利于 搜索引擎 的索引整理、小屏幕设备和视障人士使用。 同时为其他浏览要素提供了新的功能,通过一个标准接口,如 audio和 video标记。 为了使 HTML5的新元素或新属性获取最大化的兼容性
第一个月的时候,我的工作主要是省模,画线,钻孔,攻丝,这些都是基础的工作,是每个投身到机械行业的人都应该会,而且必须会的基础。 刚开始的时候,我画线又慢又不准,老是耽误别人的进度,后来经过师傅的教导,自己也慢慢的摸索,渐渐地掌握了画的技巧,画线的速度也越来越快了。 我一直以为攻丝都是用机械来攻的,哪知道原来不是这样的,在广州的很 多厂中,攻丝都是靠人工来攻的,并不是像我们想的那样是靠机器来攻的