斗破苍穹手机研究与设计开发游戏.docx
《斗破苍穹手机研究与设计开发游戏.docx》由会员分享,可在线阅读,更多相关《斗破苍穹手机研究与设计开发游戏.docx(24页珍藏版)》请在冰豆网上搜索。
斗破苍穹手机研究与设计开发游戏
毕业设计(论文)
题目
斗破苍穹——手机游戏设计
系别
专业
班级
姓名
学号
指导教师
日期
斗破苍穹
——手机游戏设计
总计:
毕业设计(论文)23页
图表2幅
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它
摘要
J2ME(Java2MicroEdition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。
它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“WriteOnce,runanywhere”的Java特性而提高开发的效率。
随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。
鉴于此我们使用J2ME技术开发了一款飞行射击类手机游戏。
本论文着眼于J2ME技术的应用,旨在开发一款可商用的手机游戏。
本论文介绍了J2ME的相关技术及本程序的结构分析和具体功能的实现。
本论文第一章主要介绍了研究的背景、研究现状及发展趋势等。
第二章主要介绍了本系统所拥有的主要功能和对功能进行分析。
第三章主要介绍立刻本系统的设计思想。
第四章主要介绍系统的实施。
本系统充分运用MIDP2.0游戏开发包的各个类,实现手机按键控制游戏主角飞机的上下左右的运行,飞弹处理,商店物品购买的实现。
程序控制敌机及子弹的运行,位置等。
本系统中使用了双缓冲技术,运行起来无闪屏。
但是由于时间及技术原因,本系统的功能尚未完善。
关键字:
J2ME;手机游戏;Java
ABSTRACT
J2ME(JavaMicroEdition2)inrecentyears,withvariousequipment,especiallymobilecommunicationsequipmentandtherapiddevelopmentofthebirthofanewdevelopmenttechnology.Itislocatedinconsumerelectronicsproductsontheapplicationofequipment,intelligent,diversification,providesinnovativesolutions,andbecauseofits"WriteOnce,runanywhere"Javacharacteristicsandimprovetheefficiencyofdevelopment.Withthegrowingpopularityofmobilephone,theJavafunctiononthemobiledevicetoachieve,Javaapplicationsthemobilephonevalue-addedservicegraduallyreflecttheirinfluence,toenrichpeople'slives,providingeasieraccesstoinformationplaysarolecannotbeignored.Inviewofthis,weuseJ2MEtechnologytodevelopaflightshootingmobilephonegame.
ThispaperfocusesonJ2MEtechnologyapplication,designedtodevelopacommercialmobilephonegame.ThispaperintroducestheJ2MEtechnologyandtheproceduresforstructuralanalysisandspecificfunctionoftherealizationof.Thefirstchapterofthisthesismainlyintroducestheresearchbackground,researchstatusanddevelopmenttrend.Thesecondchaptermainlyintroducedthissystemhasthemainfunctionsandthefunctionanalysis.Thethirdchaptermainlyintroducesthedesignthoughtofthissystemat.Thefourthchaptermainlyintroducesthesystemimplementation.ThissystemmakefulluseoftheMIDP2.0gamedevelopmentpackageofvarioustypesofmobilephonegame,realizethekeycontrolplaneaboutthenextoperation,missiles,treatment,storepurchaseimplementation.Programcontrolplanesandbombsoftheoperation,positionetc..Thissystemusingdoublebufferingtechnology,runupwithoutthesplashscreen.Butbecauseofthetimeandthetechnology,thefunctionofthissystemisnotyetperfect.
Keywords:
J2ME。
mobilegame。
Java
第1章绪论
1.1研究背景
游戏作为人们日常生活的一个重要的娱乐工程,也带动了巨大的游戏相关产业市场的发展。
游戏平台从游戏机、电视游戏,到pc游戏,到手机游戏,中间经历了很多的技术的变革。
随着新技术的发展和人们生活水平的提高,手机开始逐渐普及,手机以其小巧便捷,方便的特性成为人们的必备通讯工具。
而基于手机平台的手机游戏也就拥有了巨大的市场空间,随着3g的开通和应用,手机游戏必将迎来新的一轮游戏热潮!
1.1.1研究原因
(1)传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。
(2)传统手机访问互联网是通过WAP(WirelessApplicationProtocal),所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。
手机游戏已成为手机应用产品中用户使用率最高的产品,随着移动网络和手机终端的发展手机游戏的需求量庞大市场广阔。
1.1.2研究意义
应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空间大。
斗破苍穹游戏是一个比较经典的游戏,根据软件工程有关的规范,以合理的开发原则,设计出斗破苍穹游戏,并给人们的生活带来唯美的艺术享受和健康愉快的补充。
游戏软件是一种与文化背景密切联系的产品,具有很强的民族性和丰富的文化内涵。
伴随着游戏软件在市场上的销售,与其相关的文化也随之传播。
因此发展我国自主的益智、健康的游戏软件已是当务之急。
游戏是一种基于计算机的应用软件,是新型的休闲娱乐方式。
当前开发的游戏软件应该做到知识性、娱乐性、趣味性、教育性相统一。
1.2研究现状及发展趋势
1.2.1国内外研究现状
在国外,手机游戏正在经历一个黄金发展时期。
日本是游戏产业最发达的国家,早在几年前,日本的手机游戏业就已经蓬勃发展起来。
就拿全球最大的手机Java游戏霸主宫路武来说,从他2000年创办手机游戏公司开始,只花了4年时间,就在日本这个全球最大的手机游戏市场建立了霸业,实现年营收2300万美元的奇迹。
虽然美国相对于日本及一些欧洲国家,在手机Java游戏方面的发展相对滞后,但是在2003年,其手机游戏市场的收入也已经达到1600万美元。
在国内,有着近3亿的手机用户,即使只有10%的用户,每月只下载一款游戏,也足以使其形成一个规模庞大的产业。
但是目前仅有不足1%的用户下载过手机游戏,这使得这块被无数人看好的市场并没有达到和人们预期相吻合的水平。
人们似乎更容易接受移动其他的增值业务(比如短信、彩铃业务等),而对手机游戏的认知度却相当低。
1.2.2发展趋势
未来的手机游戏平台因为ATI和nVIDIA两大PC显示芯片厂商专业级水准的加入而更为热闹。
在ATI推出手机和PDA手机3D多媒体芯片(包含专用的媒体处理器MediaProcessor及3D加速器3DAccelerator)后,老对头NVIDA也毫不示弱,公布了他们的3D多媒体芯片,并且应用于三菱和神达MiTAC的智能手机上。
这些芯片在植入手机后能够有效的提升图形显示性能,使手机在进行多媒体演示和游戏时更够有出色显示效果。
不过这些厂家提供的都是硬件芯片,要完全发挥其在3D图形的表现能力还需要相应支持的API才能相辅相成,而目前主要的API包括2003年7月发表的OpenGLES(OpenGLforEmbeddedSystems),就是OpenGL的嵌入式版本,是为嵌入系统而开发的小型标准三维(3D)图形应用编程接口(API),并受到那些意图将3D游戏引入移动设备的游戏开发商、手机厂商、游戏引擎供应商和3D图形芯片公司的热烈追捧。
目前已知NVIDIAAR10与ATIImageon23xx3D芯片,已符合OpenGLES1.0的标准。
而最新SymbianOS8.0版本也将支援OpenGLESAPI。
相信不久后,手机上也能玩像是CS、DOOM、Quake的FPS游戏了。
另一种则是微软推出Direct3Dm,这是微软专为移动设备开发的,其中m就是mobile的意思。
目前Direct3Dm尚在制定阶段,nVIDIA在法国戛纳举行的3GSM世界年会上发布的AR10就是支持Direct3Dm新产品。
Direct3Dm的意义在于未来游戏厂商如果要把游戏移植到Mobile平台会变得比较容易,不需再去用新的平台去设计游戏,以降低游戏开发/移植的成本。
目前ATI的产品据称已经集成到日本最新一代3GFOMA手机F900I中,而该机正好采用的是symbian操作系统。
由此可见智能化和3G应用是未来游戏平台的大势所趋。
1.3.1设计原理
采用java面向对象的设计思想,主要涉及和用到J2ME中的类和功能有:
Display类代表了系统显示屏和输入设备的管理器,包含用来获取设备属性的方法,以及要求在设备上显示的对象的方法。
画布类对图形绘制和文本的精确控制,只需要指定坐标即可,坐标以屏幕的最左上角为原点即(0,0)为初始点,横向为x轴纵为y轴。
游戏画布类中提供游戏基本接口缓冲技术,直接得道设备键盘的物理状态等,精灵类中的图片分割显示技术。
线程类,线程的不断执行实现对整个游戏的控制。
分块图层类中的图片分块平铺填充技术来实现游戏的背景连续无间隔的显示。
Grphics类中在画布上绘制各种图形和图标,文本等各种元素的绘制技术,Random类的随机数技术。
player类中的音乐播放技术来实现游戏的背景音乐。
其中用到一些算法如金币取值绘制对应的数字图片和解决不支持nextInt()随机数等一些简单的算法。
1.3.2方案选择
本程序的实现方案可以通过使用2个不同的类来实现游戏的全部功能
方案一:
MILP1.0主要使用Canvas类,且不引入精灵类来实现
使用此类来实现飞机和子弹的碰撞检测,需要亲自来编写,而最大的不足在于如果自己编写碰撞检测的话,只能达到一个特定的区域的检测,也就是子弹所在的矩形区域和飞机所在的矩形区域,利用是否有重叠的方法来检测碰撞,但是存在一个问题就是子弹和飞机不可能是规则的矩形图像,也就是说当子弹从飞机的左边或者右边过来的时候,当进入飞机所在的矩形区域的时候就会认为子弹碰上了飞机,但是事实上是没有碰到的,而程序确认为它们相撞了,所以这样的方法存在一个检测不准确的问题。
此方案还存在着一个问题就是,不能使用双缓冲技术,必须得由自己来编写代码来实现。
在使用此方法的过程中还证实了还存在一个键盘事件响应的问题,重载keyPress()方法来监听键盘的时候不能够使用十进制求余的方法来侦听用户按下了哪个按键,所以在速度和性能上都比较不理想。
方案二MIDLP2.0主要使用GanmeCanvas类和精灵类来实现
在使用第一种方案编写程序的过程中遇到了上述的几个问题,而这些问题在MIDLP2.0里面都已经封装了解决的办法,不仅拥有原来的所有方法,如GameCanvas类继承Canvas类,而且还加入了双缓冲的实现方法和精灵类的像素检测方法和GameCamvas类十进制求余来侦听键盘的方法,并且提供了比MIDLP1.0更强大的功能,所以使用MIDLP2.0中新增加的功能来实现本程序。
故选择方案2来实现此次所开发的程序。
1.3.3基本内容
本课题以研究基于J2ME的手机游戏开发设计及其特点,具体研究内容如下:
(1)手机游戏开发以及J2ME的基本理论和J2ME类库的使用
(2)J2ME体系结构的研究
(3)MIDP移动信息设备简表研究
MIDP的目标硬件环境
MIDP应用程序
CLDC和MIDP库中的类
(4)JEMEAPI的研究
精灵类的应用
分块图层类的应用以及
图层管理器的应用
各种事件发生器的应用
1.4技术要求、研究方法和待解决的关键问题
1.4.1技术要求
(1)GameStart类主要提供程序的入口,设置Displayable对象和启动线程,以及实现程序的退出功能。
(2)MyGameCanvas类程序最主要是用来在屏幕上绘制游戏选择菜单界面、游戏帮助界面、关于游戏界面、游戏设置界面、关卡选择界面、商店物品购买界面和购买成功提示界面,以及玩家飞机和敌机的绘制、子弹与飞机碰撞的检测、金币图片的绘制、玩家飞机生命的绘制,实现了按键的侦测和事件处理。
(3)EnemyPlane类主要实现了产生敌机以及移动的控制以及移动。
(4)Bullet类主要实现了敌机子弹和玩家子弹的产生以及移动的控制。
(5)PlayPlane类主要实现了玩家飞机的产生和移动。
(6)Sound类主要实现游戏背景音乐的播放。
1.4.2研究方法
(1)参考现有的例子,深刻理解它的整体执行流程所具有的各功能,读懂程序的关键部分代码,使对J2ME射击类(FPS)游戏的整体开发流程有个比较清楚的认识,最后构思出本程序所要实现的功能整体的流程。
(2)在对J2ME射击类(FPS)游戏有个清晰的认识和了解,并且对自己的的程序有个清晰的构思,然后按照软件开发的总过程进行设计,经历定义和计划、需求分析、软件设计、软件编码、软件测试等过程,研究开发自己的程序。
1.4.3待解决的关键问题
(1)关于界面的文字说明如何依次的向上移动?
(2)玩家获得的金币如何动态的使用图片显示出来?
(3)商店界面物品如何根据选择的装备种类而画出相应的装备并且显示相应说明文字以及说明文字的滚动速度如何控制?
(4)如何根据不同的子弹对玩家飞机造成不同程度的生命伤害攻击力,以及如何把飞机生命和相应的生命图片关联起来动态的显示?
(5)敌机发出子弹的时候如何如何才能够向飞机在同一时间出现的位置移动?
(6)如何能够让敌机做不规则的移动并且不会超出屏幕以外且在特定的时候发射子弹?
(7)在游戏菜单选择界面有游戏,关于游戏,和游戏设置,但是在暂停的时候也由相应的选项而在这几个界面都由一个返回的按钮当点击这个按钮的时候通过改变游戏的状态可以返回到上一个界面,但是当暂停界面调用过后再点返回的时候会直接的返回到游戏菜单选择界面而不是游戏界面?
(9)当检测到碰撞的时候这个子弹和飞机要从屏幕上除去,但是当使用向量移除的时候会出现闪屏的效果?
第2章系统分析
2.1功能概述
本系统主要要实现的功能有游戏菜单的绘制,其中游戏菜单包括“主菜单”,“关卡选择菜单”,“武器商店武器选择菜单”。
游戏控制的实现,游戏控制方面包含通常的“开始”,“退出”,“继续”,游戏中的“暂停”还有关卡选择的控制。
本系统为增进游戏可玩性特别设置了武器商店武器商店包括如上图五大类。
本系统在游戏运行方面做了背景、子弹、敌机、玩家飞机、金币、生命、游戏菜单和飞弹的绘制。
2.2功能分析
2.2.1主要功能分析
本系统的菜单功能模块主菜单包括开始游戏、游戏帮助、关于游戏、音乐开关、退出游戏和继续游戏。
其中开始游戏并不是直接进入游戏,而是进入关卡选择菜单。
继续游戏是如果有存档则读取存档后进入游戏。
关卡选择菜单包括第一关到第六关的绘制和武器商店的绘制,其中每一个选择点包含着对应的标题和说明,说明文字每次向上滚动一行。
武器商店武器选择菜单包含机体、机枪、弹舱、飞弹和配件的选择。
对应的物品有对应的说明,武器商店界面中机体提供玩家购买飞机的地方,机枪可以让玩家升级武器,弹舱是增加在游戏可以使用的飞弹上限,飞弹是提供玩家购买飞弹的地方,配件是提供玩家购买配件的地方,配件可以增加飞机的固有属性(生命,防御……)。
另外本界面还有剩余金币的显示,金币的余额是购买物品的关键。
游戏控制模块包含了游戏的基本控制,开始、退出、继续还有游戏中的暂停和关卡选择、武器购买等。
其主要原理是通过按键状态的改变,来改变游戏的状态以达到游戏的整体控制。
武器商店是本系统的一大特色,其中机体一共有三种,分别子弹不同,攻击强度也不同。
机枪一共有三种,即每种飞机有三种子弹类型可供购买,弹舱初始设定有五个,也即是可以填装五个飞弹。
飞弹一共有三种,分别为全屏消子弹、攻击敌机、和这两者的结合。
对于每种飞弹来说有不同的价格。
配件设计的也是三种,暂定的三种配件分别加攻击,防御和生命这几大属性。
游戏运行方面主要包含背景、子弹、敌机、玩家飞机、金币、生命、游戏菜单和飞弹的绘制。
其中游戏的每一关有不同的背景,背景采用的是一张首尾无间隙连接的图片。
不同类的飞机有不同的子弹,玩家飞机的子弹是自动且连续的,并且子弹发射的初始位置是随玩家移动的,但是子弹出现之后的移动轨迹又是固定不变的。
玩家每种飞机的子弹有四种。
敌机的子弹是少量的随机的,除BOSS之外每种敌机的子弹应当不超过两种。
敌机暂时设计的有两种,第一种出现位置是在屏幕的上半部分边缘随机出现,然后选择随机的移动轨迹进行移动。
第一种的敌机有四种移动的轨迹。
第二种敌机随机出现在屏幕的上边缘,第二种敌机有两种移动轨迹。
分别斜向左下,再返回;和反向。
敌机都有检测是否被攻击的方法,然后执行相应的动作。
玩家飞机在屏幕上出现一个,且初始坐标确定为屏幕下方中间。
玩家飞机随时判断按键状态,一旦对应方向状态改变则飞机向相应方向移动飞机共有八个移动的方向上、下、左、右和左上、右上、左下、右下。
玩家飞机在关卡内不会改变,只有当玩家购买了不同飞机,才会显示不同的飞机。
同时玩家飞机出现的时候随之而出现的有子弹。
本系统中金币有两种概念,一种是金币的数量计数,也即是持久的可被玩家看见的,提供给玩家金币余额的信息。
另一种是敌机被打爆后爆出来的金币,一旦被玩家“吃掉”或移除屏幕就会消失。
生命是由两张图片显示的,两张图一张生命槽,一张生命,它们和玩家飞机生命以一定关系联系起来。
就构成了生命显示效果。
在游戏中屏幕左下部位还有菜单的绘制点击菜单的话,游戏的绘制就暂停,转为菜单的绘制,再写对应的菜单项的操作。
在屏幕的右下方绘制的是飞弹,飞弹是当触发一定的按键事件时才会激活。
以上所有要绘制的元素中生命条、金币余额显示、菜单、飞弹信息、玩家飞机、玩家飞机子弹、背景都是随着开始游戏同时绘制到屏幕上的,敌机、敌机所爆的金币、敌机子弹、敌机的爆炸效果、玩家飞机的爆炸效果、玩家“吃掉”奖励的提示信息等,都是在游戏运行中遵循一定的规则随时间出现的。
2.2.2关键功能分析
(1)在上述功能中玩家金币余额的显示是一个难点,因为我们要做到的是任意给一个六位以内的数,然后把这六位数的每一位对应图片(
)然后显示在屏幕上。
当这个数发生改变时,图片显示的应当是和这个数相同的书,不够六位的前面显示图片零。
针对这个问题我们这样思考:
0-9十个数正好对应图片的分块后的十个图片。
因此我们只需要把任意给出的数处理一下剥离出这个数的每一位,那么就可以和要显