《计算机专业JAVA打飞机游戏毕业设计论文.docx》由会员分享,可在线阅读,更多相关《计算机专业JAVA打飞机游戏毕业设计论文.docx(67页珍藏版)》请在第一文库网上搜索。
1、1绪论1.1手机软件现状在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端:1 .传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。2 .传统手机访问互联网是通过WAP(WireICSSAPPIiCatiOnPrOtOCa1),所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。而Java技术在无线应用方面的优势非常明显:1. 应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空间大。2. JaVa技术提供了一个类库
2、,它使的应用开发商可以创建更为直觉、丰富的用户界面(GUI);3. JaVa技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。基于以上分析,JaVa手机将是未来手机的发展方向,是业界的热点。1.2 J2ME介绍虽然Java已经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统之中。JaVa平台演进到Java2后,JaVa平台分别针对不同领域的需求被分成四个版本,亦即J2EE、J2SE、J2ME以及JavaCardo其中J2ME定位在消费性电子产品的应用上。这个版本针对资源有限的电子消费产品的需求精简核心类库,并提供
3、了模块化的架构让不同类型产品能够随时增加支持的能力。这个版本的应用层面相当广泛,会是未来JaVa平台发展的重点项目。J2ME在1999年的JaVaOne开发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算机设备的开发人员。J2ME的一个关键优点是,J2ME与所有支持JaVa的设备都是兼容的。支持JaVa的设备就是任何运行JaVa虚拟机器的计算机。Motoro1aNOkia等生产厂商都生产支持JaVa的设备。、J2ME平台是由配置(ConfigUration)和简表(PrOfiIe)构成的。配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含JaVa虚拟机。简表是针对一系列设备提
4、供的开发包集合。在J2ME中还有一个重要的概念是可选包(OPtiOna1Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了JSR82(B1uetoothAPI)提供了对蓝牙的支持。目前,J2ME中有两个最主要的配置,分别是ConneCted1imitedDevicesConfiguration(C1DC)和ConnectedDevicesConfiguration(CDC)。作为第一个面对小型设备的JaVa应用开发规范,C1DC是由包括Nokia,Motoro1a和Sien1enS在内的18家全球知名公司共同协商完成的。C1DC是J2ME核心配置
5、中的一个,可以支持一个或多个Profi1ee其目标主要面向小型的、网络连接速度慢、能源有限(主要是电池供电)且资源有限的设备,如手机、PDA等。而CDC则是主要用于运算能力相对较佳、在电力供应上相对比较充足的嵌入式装置(比方说冷气机、电冰箱、电视机机顶盒(set-topbox)1.3 手机游戏应具有的特征一个手机游戏应该具有以下特征:易于学习:既然手机游戏面向的是普通消费者而不是计算机专家,那么他们不可能深入的学习游戏技巧。消费者不会花几个小时去研究一个3元的手动操作的游戏。保持游戏的简单是最基本的要求。可中断性:多任务处理是手机生活方式的基本特征。手机用户常常在任务(如等一个电子邮件或者等车
6、)之间有一小段时间。而游戏、日历管理、通讯和工作数据访问使用的是同一个设备。所以一个好的手机游戏应该提供短时间的娱乐功能,并且允许用户在游戏和工作模式之间顺利切换。基于订阅:手机游戏的盈利成功取决于他们巨大的使用量。一开始开发和设计每个游戏都是昂贵的。如果一个手机游戏开发者要赢利的话,重要的是:同一个游戏引擎,多个标题,基本的故事情节类似。基于订阅的游戏是不断产生收入的最好方法。丰富的社会交互:不管一个游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个游戏。对于一个基于订阅的游戏,重要的是与别的玩家合作以增强所玩游戏的智力和随机性。在今天纷繁复杂的多玩家游戏中具
7、有丰富社会交互的游戏证明是成功的。利用手机技术的优点:巨额的手机技术研发费用都花在提高设备和网络的可用性和可靠性上面。因此,手机设备硬件和网络协议与桌面/控制台世界(如全球定位系统(GPS)扩展、条形码扫描仪、和短消息服务(SMS)/多媒体信息服务(MMS)通讯)有着非常大的差别。好的手机游戏应该利用那些更新的设备特征和网络基础设备的优点。1.4 本游戏背景介绍在抗战中,由国民政府领导的中国空军是所有国民党军队中抗战最为彻底,也最为英勇的部队,虽然开战之初力量悬殊,但是面对穷凶极恶的日本侵略者,他们亳不畏惧,视死如归,全力以赴投身到民族救亡的伟业中去,用自己的鲜血和生命谱写了中华民族最为豪迈的
8、诗篇。自一九三二年二月五日“一二八”事件始,至一九四五年八月十四日止,抗战期间,共出动飞机一千一百二十八批,八千八百四十七架次,击落敌机五百二十九架,击伤敌机一百一十架,炸毁敌机二百二十七架。同时,中国空军空战中一共牺牲空勤人员六百六H一名。我至今仍然清楚的记得,在抗日战争即世界反法西斯战争胜利50周年的时候,我在一本描述抗战空军的书里第一次看到阎海文烈士那年青的面孔时所带来的震撼,第一次看到高志航、沈崇海等空军烈士的事迹时所带来的感动,第一次听说碧山空战时的无奈。时至今日,已经很少有人能够记得在中国的天空献身的抗日英雄们,我只能引用下面这句话来表达我的心情:“你们的名字无人知晓,你们的业绩与
9、世长存!”我的这款游戏取名为览桥风光,以纪念从览桥中央航校走出的英雄们。1.5 本章小结引言和第一章中介绍了手机在无线应用方向的当今概况,J2ME的相关内容,分析了J2ME在手机软件开发中起的重要作用,描述了本论文的相关背景。2开发环境及相关技术的介绍1.1 开发环境操作系统:MicrosoftWindowsXP程序语言:Java2开发包:Java(TM)2StandardEdition(5.0)SunMicro.J2MEWire1essToo1Kit2.2IDE:Ec1ipse3.011.2 JaVa语言特点1 .平台无关性JaVa引进虚拟机原理,并运行于虚拟机,实现不同平台之间的JaVa接
10、口。JaVa的数据类型与机器无关。2 .安全性JaVa的编程类似C+,但舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。它提供了安全管理器,防止程序的非法访问。3 .面向对象JaVa吸收了C+面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反复利用。4 .分布式Java建立在TCP/IP网络平台上,提供了用HTTP和FTP协议传送和接收信息的库函数,使用其相关技术可以十分方便的构建分布式应用系统。5 .健壮性JaVa致力与检查程序在编译和运行时的错误,并自动回收内存,减少了内存出错的可能性
11、。JaVa取消了C语言的结构、指针、MefinC语句、多重继承、got。语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间。1.3 关于EC1IPSEEc1ipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Ec1ipse附带了一个标准的插件集,包括Java开发工具(JaVaDeve1opmentToo1s,JDT)o虽然大多数用户很乐于将Ec1ipse当作JavaIDE来使用,但Ec1ipse的目标不仅限于此。Ec1ipse还包括插件开发环境(P1ug-inDeve1opmentEn
12、vironment,PDE),这个组件主要针对希望扩展Ec1ipse的软件开发人员,因为它允许他们构建与Ec1ipse环境无缝集成的工具。由于Ec1ipse中的每样东西都是插件,对于给Ec1ipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Ec1ipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C+、COBO1和Eiffe1等编程语言的插件已经可用,或预计会推出。Ec1ipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。EC1iPSe
13、是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。2. 4关于WireIeSSToo1KitWTK(Wire1essToo1Kit)是SUn公司针对J2ME推出的用于手机和Pa1n1等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机模拟器开发包。它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模拟器的最基本组件,是其他IDE需集成采用的必备元素。3. 5JavaAppicationManager手机中负责调配程序运行资源的管理后
14、台是JavaApp1icationManagero它所使用的传输媒体可以是红外线、网络、以及其他可用来传输的媒体。JaVaApp1icationManager会从网络上下载代表该APPIiCatiOnSUite的JAR档,接着在手机上安装此MID1etSUite,然后在手机开始执行该应用程序。4. 6本章小结:第二章介绍了JaVa语言的特点、本程序的开发环境及其相关工具的原理和使用。3程序结构、思想和相关技术3.1 本程序需要解决的主要技术问题1 .游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率
15、在后台等待响应,若有丝亳的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。2 .游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,在MIDP2.0中提供了用于增强游戏功能的game包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。3 .玩家飞机的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行算法也要进行相关的设置,已免游戏过于简单。4 .对于双方发射的子弹应该赋予不同的速度,同时,程序应该设定敌人飞机的子弹不与敌人的
16、飞机进行碰撞检测,已增加游戏的可玩性。5 .双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。6 .为了增加界面的美观,在程序中添加了白云。由于手机屏幕大小有限,所以白云的数量和出现的位置要经过相关的设置,才能实现白云不规则出现的效果。7 .游戏的地图不可能通过绘图来解决。否则,不仅难于控制和处理过多的元素,也会因过多的大型图片而不能限制程序的大小,失去手机上程序的原则和Java的优势。8 .Java是基于虚拟机的半解释型编译系统,其执行效率较C+等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可