JAVA002打飞机游戏设计论文_第1页
JAVA002打飞机游戏设计论文_第2页
JAVA002打飞机游戏设计论文_第3页
JAVA002打飞机游戏设计论文_第4页
JAVA002打飞机游戏设计论文_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

佳木斯大学教务处 第 1 页摘 要这款游戏的名字叫览桥风光。 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“ 着手机的日益普及、丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于发一款可商用的手机游戏程序。本程序将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。本论文介绍了键字:机游戏; 2 页of 937. is a of on It on to of It of to is on of on on s in on 2a on to 2ME as s of in 2 3 页目 录1 绪论. 手机软件现状. 手机游戏应具有的特征. 本游戏背景介绍. 本章小结.发环境及相关技术的介绍. 开发环境. 关于. 关于. 本章小结:.序结构、思想和相关技术. 本程序需要解决的主要技术问题. 程序流程. 玩家飞机的控制方式和敌人方的智能运行. 子弹的运行和控制.0 内存的优化.1 内存检测器.2 关于混淆器.3 本章小结.序分析和具体实现. 游戏进入前的选择. 游戏逻辑及.图的创建.于方法. 4 .家4次游戏机会的实现方法.和. 游戏中的奖励及相关飞机的行为. 普通敌人相关属性. 白云的实现原理. 关尾.本章小结. 打包测试的过程. 发现的. 未完善的功能. 本程序的总结和展望. 感想.码.作说明.文文献及其译文. 5 页1 机软件现状在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端:1. 传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。2. 传统手机访问互联网是通过 所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。而. 应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空间大。2. 使的应用开发商可以创建更为直觉、丰富的用户界面(3. 为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。基于以上分析,机将是未来手机的发展方向,是业界的热点。2经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统之中。即22中个版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。这个版本的应用层面相当广泛,会是未来台发展的重点项目。发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算机设备的开发人员。2持生产厂商都生产支持设备。、简表(成的。配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含表是针对一系列设备提供的开发包集合。在 还有一个重要的概念是可选包(它佳木斯大学教务处 第 6 页是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能供了对蓝牙的支持。目前,别是 作为第一个面对小型设备的 以支持一个或多个 目标主要面向小型的、网络连接速度慢、能源有限(主要是电池供电)且资源有限的设备,如手机、 是主要用于运算能力相对较佳、在电力供应上相对比较充足的嵌入式装置(比方说冷气机、电冰箱、电视机机顶盒 (机游戏应具有的特征一个手机游戏应该具有以下特征:易于学习: 既然手机游戏面向的是普通消费者而不是计算机专家,那么他们不可能深入的学习游戏技巧。消费者不会花几个小时去研究一个3元的手动操作的游戏。保持游戏的简单是最基本的要求。可中断性: 多任务处理是手机生活方式的基本特征。手机用户常常在任务(如等一个电子邮件或者等车)之间有一小段时间。而游戏、日历管理、通讯和工作数据访问使用的是同一个设备。所以一个好的手机游戏应该提供短时间的娱乐功能,并且允许用户在游戏和工作模式之间顺利切换。基于订阅:手机游戏的盈利成功取决于他们巨大的使用量。一开始开发和设计每个游戏都是昂贵的。如果一个手机游戏开发者要赢利的话,重要的是:同一个游戏引擎,多个标题,基本的故事情节类似。基于订阅的游戏是不断产生收入的最好方法。丰富的社会交互: 不管一个游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个游戏。对于一个基于订阅的游戏,重要的是与别的玩家合作以增强所玩游戏的智力和随机性。在今天纷繁复杂的多玩家游戏中具有丰富社会交互的游戏证明是成功的。利用手机技术的优点: 巨额的手机技术研发费用都花在提高设备和网络的可用性和可靠性上面。因此,手机设备硬件和网络协议与桌面/控制台世界(如全球定位系统(展、条形码扫描仪、和短消息服务(多媒体信息服务(讯)有着非常大的差别。好的手机游戏应该利用那些更新的设备特征和网络基础设备的优点。佳木斯大学教务处 第 7 游戏背景介绍在抗战中,由国民政府领导的中国空军是所有国民党军队中抗战最为彻底,也最为英勇的部队,虽然开战之初力量悬殊,但是面对穷凶极恶的日本侵略者,他们毫不畏惧,视死如归,全力以赴投身到民族救亡的伟业中去,用自己的鲜血和生命谱写了中华民族最为豪迈的诗篇。自一九三二年二月五日“一二八”事件始,至一九四五年八月十四日止,抗战期间,共出动飞机一千一百二十八批,八千八百四十七架次,击落敌机五百二十九架,击伤敌机一百一十架,炸毁敌机二百二十七架。同时,中国空军空战中一共牺牲空勤人员六百六十一名。我至今仍然清楚的记得,在抗日战争即世界反法西斯战争胜利 50 周年的时候,我在一本描述抗战空军的书里第一次看到阎海文烈士那年青的面孔时所带来的震撼,第一次看到高志航、沈崇海等空军烈士的事迹时所带来的感动,第一次听说碧山空战时的无奈。时至今日,已经很少有人能够记得在中国的天空献身的抗日英雄们,我只能引用下面这句话来表达我的心情:“你们的名字无人知晓,你们的业绩与世长存! ”我的这款游戏取名为览桥风光,以纪念从览桥中央航校走出的英雄们。章小结引言和第一章中介绍了手机在无线应用方向的当今概况,析了 述了本论文的相关背景。2 发环境操作系统: 8 页程序语言: 包:M)2平台无关性运行于虚拟机,实现不同平台之间的数据类型与机器无关。2. 安全性,但舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。它提供了安全管理器,防止程序的非法访问。3. 面向对象面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反复利用。4. 分布式供了用用其相关技术可以十分方便的构建分布式应用系统。5. 健壮性自动回收内存,减少了内存出错的可能性。针、#重继承、作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间。于一个开放源代码的、基于 可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,带了一个标准的插件集,包括 发工具(虽然大多数用户很乐于将 作 使用,但 目标不仅限于此。包括插件开发环境(这个组件主要针对希望扩展 软件开发人员,因为它允许他们构建与 境无缝集成的工具。由于 的每样东西都是插件,对于给 供插件,佳木斯大学教务处 第 9 页以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于 发工具。尽管 使用 言开发的,但它的用途并不限于 言;例如,支持诸如 C/C+、 编程语言的插件已经可用,或预计会推出。架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。一个开放源代码的、基于 可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。于除手机厂商的专用开发包外唯一的手机模拟器开发包。它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模拟器的最基本组件,是其他集成采用的必备元素。所使用的传输媒体可以是红外线、网络、以及其他可用来传输的媒体。,接着在手机上安裝此后在手机开始执行该应用程序。章小结:第二章介绍了程序的开发环境及其相关工具的原理和使用。3 程序结构、程序需要解决的主要技术问题1. 游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在佳木斯大学教务处 第 10 页设计中。2. 游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。3. 玩家飞机的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行算法也要进行相关的设置,已免游戏过于简单。时,程序应该设定敌人飞机的子弹不与敌人的飞机进行碰撞检测,已增加游戏的可玩性。5. 双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。程序中添加了白云。由于手机屏幕大小有限,所以白云的数量和出现的位置要经过相关的设置,才能实现白云不规则出现的效果。7. 游戏的地图不可能通过绘图来解决。否则,不仅难于控制和处理过多的元素,也会因过多的大型图片而不能限制程序的大小,失去手机上程序的原则和. 执行效率较 C+等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(行程序打包后的优化。9. 游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图和人性化设置也需要有一定的考虑。以上相关技术细节和整体流程将分别在以下小节阐述。序流程用户能够选取欲执行的旦选取了某个作系统就会激活消减状态(止状态(行状态( 呼叫图3 11 页每个 必须继承 个抽象类。在 及可以存在的三种状态,包括及一个三种状态的转换关系如图3别是启动一个用管理软件会首先创建一个 例并使得他处于 态,当 方法被调用的时候 入 态,也就是所说的运行状态。在 态调用 者 方法可以使得 入者 态。值得一提的是 法,事实上,当 方法被调用的时候,知 入 态。在须释放了所有的资源,并且保存了数据。如果时候,以在接到通知后抛出 保持在当前状态,如果设置为话,则必须立即进入程序采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。运行程序后允许用户选择执行选项菜单,在开始游戏后将先从外部文件载入地图文件,对背景的所有物体进行绘图。在主程序运行的线程中,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。游戏开始后先绘制地图,并将各个对象实例化。在主程序运行的线程中,游戏中所有的对象都应该运行在同一个线程下。当敌人或者用户的子弹达到射程范围后,并不删除子弹对象,而是使用其不能显示,当用户或敌人在次发射子弹时,只需使用置成可以显示即可。在屏幕重绘的主程序中,将在每次的循环中判断若干事件,以便程序进入相关的分支执行相关的反应代码。如:玩家剩余飞机数是为0、敌人、玩家飞机是否被击中、屏幕上相关信息的绘制等。程序为需要完成独立功能的模块设置了单独的类。继承自 入程序后首先启动的是程序介绍的信息画面。点击果选择进入游戏,则调用且中止提高运行速度。木斯大学教务处 第 12 要使用大量的初级用户接口类,尤其在游戏程序中,几乎完全依赖的就是 象类进行绘图。从程序开发的观点看,序可在需要时在点杆事件(如果设备支持),并定义了允许将键盘按键映射为游戏控制键的函数。键盘事件由键代码指定,但这样控制游戏会导致缺乏通用性,并不是每个设备的键盘布局都适合游戏的操作。应当将键代码转换为游戏键的代码,以便硬件开发商能定义他们自己的游戏键布局。具有24位深度色彩的绘制能力,以三原色分别各占一个字节表示其颜色。程序只能在函数中使用函数直接绘制在缓冲区上,可以在任何时间请求传输到前台。其对象会被传给函数,以便最终显示。行游戏绘图一般需要手动编程使用双缓冲。需要在方法内将所想要画的图形画在一张预先准备好的背景上,等所有绘图操作都完成后再将背景的数据拷贝到实际的屏幕上。再利用 方法取得属于这个背景的进行的绘图操作都会作用在背景上,等到全部的绘图操作完成后,再调用方法将背景的数据复制到实际显示的屏幕上。这样的技术在绘制动画时特别有用。绘制动画时经常需要不断地更新画面,而更新画面的操作就是先将屏幕以 的方式清除,再将下一张图片画在屏幕上,然而反复的清除及重绘会造成屏幕的闪烁现象(因此使用双重缓冲的好处就是在背景进行这个清除及重绘的操作,再将完成的绘图拷贝到屏幕上,由于用户看不到清除的操作,因此就不会出现闪烁的现象了。不过在某些此在处理前应先利用的方法来判断。是,这却造成了游戏缺乏可移植性的问题,例如,很难将使用。佳木斯大学教务处 第 13 些游戏移植性问题初步得到了解决。个与游戏开发相关的类。其中 使游戏代码变的更小,因为开发者不需要自己编写象面将简要介绍 以具有额外增加了一些便于游戏设计的功能。比如: 直接提供了 ,使程序员可以在同一个线程自己侦测按键的状态。的功能,实现了双缓冲技术。所谓的是画面上独立移动的图形。同的成动态的效果。图片可翻转、颠倒、由一个主角图片就可以方便的得到所有方向的显示状态,相比原先只能使用 图,需要将所有方向的主角图象都绘制在 象中简化了许多。图时将把大图分解为若干等宽等高的小图。每个小图按照其排列顺序有相应的序号,在程序中调用其序号,就可以绘制出相应的图片。本程序中的双方飞机、子弹、白云都由包括了一系列自动获取了代号和位置的层,简化了各层加入游戏画面的过程,提供了自动排序和绘制的能力。的层可以用函数附加、删除和插入。层的序号相当于坐标的层表示最接近用户视觉,层数越高,离用户越远。层号总是连续的,即使有中间的层被移除,其他层的序号会作相应的调整以保持整体的完整性。变 类使不需要高分辨率的图象就能创建大幅图面成为可能。这项技术通常应用在 2D 游戏平台的滚动背景的绘图。一块整图可被分割成等大小的图象格,每块格有其对应的序号,按照行列递增。多块小格可由大块同时替换组合而模拟动态的背景,这不需要逐块替换所有的静态图象格而显得非常方便。式是 14 页由对绘制游戏画面和被操纵主角极有帮助。飞机之间或与白云碰撞时就不会因为背景有特定的颜色,显示出的效果像贴上的图片而缺乏真实感,物体之间轻微重叠时最上层图片也不会覆盖超过其有效象素外的部分。这些代码包含在每一个单独的而如果将多个 个片的大小可以得到控制。使用中的现了方便的管理和程序体积的精简。家飞机的控制方式和敌人方的智能运行以位的形式返回键盘上所有键的按与释放的状态,当键就是被按下的状态,为0时则为释放状态。只需要此一个函数的返回值就可以返回所有键的状态。这保证了快速的按键和释放也会被循环所捕捉。同时,这样的机制也可检测到几个键同时按下的状态,从而提供斜向运行等相应功能(本程序没有实现斜上运行功能)。程序运行时应该对玩家飞机是否飞出屏幕的范围进行检测,如果飞出屏幕,就应该重新设定玩家飞机的位置。玩家飞机被击中后,为了平衡游戏的可玩性,玩家飞机将有短暂时间无敌,即不进行碰撞检测,同时在屏幕右上角显示无敌时间。根据游戏设定,敌人飞机。不能与玩家飞机重合,则他每走一步都需要检测一下是否与玩家飞机碰撞。于判断是否与某个游戏中的碰撞)。同理,还需要检测玩家子弹与敌机、敌机与玩家子弹是否碰撞。如果发生碰撞,将相关精灵图片替换为爆炸图片。敌人飞机需要具有一定的智能性,以便对玩家攻击,使游戏具有一定的可玩性。敌人可以在适当时候转向或者开炮火,同时,程序应该检测敌机是否飞出了界外。在普通敌机中,有一组敌机的其中一架具有跟踪功能,其原理为:当其进入屏幕后,根据玩家飞机的X、坐标,已达成跟踪的效果。由于线程的关系,敌机器的改变方向有时并不是实时的,这就可以使玩家有躲开撞击的可能,增强了游戏的可玩性。佳木斯大学教务处 第 15 页在游戏进行中出现的大型飞机,由于其不可能立即被击落,所以应该设置其的运行方法,理论上讲还是根据玩家飞机的坐标,但是,在此设置一个标志位,使得敌人在取的玩家位置后即开始玩家方向运动,这期间,将不执行取得玩家飞机位置重设飞行方向的步骤。这样做,即防止了大飞机变成跟踪飞机,又使得大飞机的运行具有不确定性。在关尾出现的在屏幕上方左右移动并发射子弹。实际上,此时该通过玩家在游戏运行中的习惯性的运行方向,使用遗传算法,来动态判断玩家下一步的运行方向,并且指挥普通飞机出现在预测的位置上。可惜由于时间关系没有实现。弹的运行和控制玩家的子弹是个精灵数组,有 9个元素,表示玩家一次最多可以发射3组9发子弹,对于一个完整的游戏来讲,应该根据关卡的不同而给予玩家不同的飞机,飞机性能的差别在于子弹的射程不同。由于本游戏仅有一关,所以子弹速度设定的差别没有体现出来。当玩家一次发射了3组子弹,而这 3组子弹并没有消失时,玩家将无法发射子弹。使用每组子弹的第一发作为与敌人进行碰撞检测的精灵,同时相关的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论