《斗破苍穹——手机设计游戏.doc》由会员分享,可在线阅读,更多相关《斗破苍穹——手机设计游戏.doc(32页珍藏版)》请在三一文库上搜索。
1、毕毕 业业 设设 计(论文)计(论文) 题目斗破苍穹手机游戏设计 系别 专业 班级 姓名 学号 指导教师 日期 II 斗破苍穹 手机游戏设计 总计:毕业设计(论文)23 页 图表 2 幅 I 毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明 原创性声明原创性声明 本人郑重承诺:所呈交的毕业设计(论文) ,是我个人在指导教师的指 导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢 的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我 为获得 及其它教育机构的学位或学历而使用过的材料。对本研究 提供过帮助和做出过贡献的个人或集体,均已在
2、文中作了明确的说明并表示 了谢意。 作 者 签 名: 日 期: 指导教师签名: 日 期: 使用授权说明使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的 规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校 有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务; 学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为 目的前提下,学校可以公布论文的部分或全部内容。 作者签名: 日 期: II 学位论文原创性声明学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取 得的研究成果。除了文中特别加以标注引用的内
3、容外,本论文不包含任何其 他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果 由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权 大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和 汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期: 年 月 日 导师签名: 日期
4、: 年 月 日 III 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300 字左右) 、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论) 、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于 1 万字(不包括图纸、程序清单等) ,文科类论 文正文字数不少于 1.2 万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件) 。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小
5、符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术 标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用 A4 单面打印,论文 50 页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 IV 5.装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 3)其它 目 录 摘 要 III ABSTRACT .IV 第 1 章 绪论 .- 1 - 1.1 研究背景- 1 - 1.1.1 研究原因 .- 1
6、- 1.1.2 研究意义 .- 1 - 1.2 研究现状及发展趋势- 2 - 1.2.1 国内外研究现状 .- 2 - 1.2.2 发展趋势 .- 2 - 1.3.1 设计原理 .- 3 - 1.3.2 方案选择 .- 3 - 1.3.3 基本内容 .- 4 - 1.4 技术要求、研究方法和待解决的关键问题- 5 - 1.4.1 技术要求 .- 5 - 1.4.2 研究方法 .- 5 - 1.4.3 待解决的关键问题 .- 6 - 第 2 章 系统分析 .- 7 - 2.1 功能概述- 7 - 2.2 功能分析- 7 - 2.2.1 主要功能分析 .- 7 - 2.2.2 关键功能分析 .-
7、9 - 第 3 章 系统设计 - 11 - 3.1 功能模块设计.- 11 - 3.2 系统配置方案.- 12 - 3.3 详细设计.- 12 - 3.3.1 总体设计 - 12 - V 3.3.2 主体设计 - 14 - 第 4 章 系统实施 - 17 - 4.1 系统编码.- 17 - 4.2 系统测试.- 18 - 4.2.1 测试方法 - 18 - 4.2.2 测试项目 - 19 - 4.2.3 测试数据 - 19 - 4.2.4 测试结果 - 19 - 4.3 系统发布.- 19 - 4.4 系统操作.- 20 - 4.4.1 应用系统安装.- 20 - 4.4.2 游戏操作说明.-
8、 20 - 总 结 - 21 - 致 谢 - 22 - 参 考 文 献 - 23 - VI 摘 要 J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的 飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智 能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的 Java 特性而提高开发的效率。随着手机的日益普及、Java 功能在移动设备上的实现, Java 应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供 快捷的资讯起着不可忽视的作用。鉴于此我们使用 J
9、2ME 技术开发了一款飞行射击类手机 游戏。 本论文着眼于 J2ME 技术的应用,旨在开发一款可商用的手机游戏。本论文介绍了 J2ME 的相关技术及本程序的结构分析和具体功能的实现。本论文第一章主要介绍了研究 的背景、研究现状及发展趋势等。第二章主要介绍了本系统所拥有的主要功能和对功能 进行分析。第三章主要介绍立刻本系统的设计思想。第四章主要介绍系统的实施。本系 统充分运用 MIDP2.0 游戏开发包的各个类,实现手机按键控制游戏主角飞机的上下左右 的运行,飞弹处理,商店物品购买的实现。程序控制敌机及子弹的运行,位置等。本系 统中使用了双缓冲技术,运行起来无闪屏。但是由于时间及技术原因,本系统
10、的功能尚 未完善。 关键字: J2ME;手机游戏;Java VII ABSTRACT J2ME ( Java Micro Edition 2 ) in recent years, with various equipment, especially mobile communications equipment and the rapid development of the birth of a new development technology. It is located in consumer electronics products on the application of eq
11、uipment, intelligent, diversification, provides innovative solutions, and because of its“ Write Once, run anywhere“ Java characteristics and improve the efficiency of development. With the growing popularity of mobile phone, the Java function on the mobile device to achieve, Java applications the mo
12、bile phone value-added service gradually reflect their influence, to enrich peoples lives, providing easier access to information plays a role can not be ignored. In view of this, we use J2ME technology to develop a flight shooting mobile phone game. This paper focuses on J2ME technology application
13、, designed to develop a commercial mobile phone game. This paper introduces the J2ME technology and the procedures for structural analysis and specific function of the realization of. The first chapter of this thesis mainly introduces the research background, research status and development trend. T
14、he second chapter mainly introduced this system has the main functions and the function analysis. The third chapter mainly introduces the design thought of this system at. The fourth chapter mainly introduces the system implementation. This system make full use of the MIDP2.0 game development packag
15、e of various types of mobile phone game, realize the key control plane about the next operation, missiles, treatment, store purchase implementation. Program control planes and bombs of the operation, position etc This system using double buffering technology, run up without the splash screen. But be
16、cause of the time and the technology, the function of this system is not yet perfect. KeyKey wordswords:J2ME; mobile game; Java 斗破苍穹(手机游戏设计) - 1 - 第 1 章 绪论 1.1 研究背景研究背景 游戏作为人们日常生活的一个重要的娱乐项目,也带动了巨大的游戏相关产业市场 的发展。游戏平台从游戏机、电视游戏,到 pc 游戏,到手机游戏,中间经历了很多的技 术的变革。随着新技术的发展和人们生活水平的提高,手机开始逐渐普及,手机以其小 巧便捷,方便的特性成为人们
17、的必备通讯工具。而基于手机平台的手机游戏也就拥有了 巨大的市场空间,随着 3g 的开通和应用,手机游戏必将迎来新的一轮游戏热潮! 1.1.1 研究原因研究原因 (1)传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能 更新、修改,若要增加新功能必须另换一部手机。 (2)传统手机访问互联网是通过 WAP(Wireless Application Protocal),所有网络资 源必须接通网络才能在线访问,非常耗时、费用亦很高。手机游戏已成为手机应用产品 中用户使用率最高的产品,随着移动网络和手机终端的发展手机游戏的需求量庞大市场广 阔。 1.1.2 研究意义研究意义 应用程序
18、可按需下载,而不是购买由硬件商提供的套件,可升级空间大。 斗破苍穹游戏是一个比较经典的游戏,根据软件工程有关的规范,以合理的开发原 则,设计出斗破苍穹游戏,并给人们的生活带来唯美的艺术享受和健康愉快的补充。 游戏软件是一种与文化背景密切联系的产品,具有很强的民族性和丰富的文化内涵。 伴随着游戏软件在市场上的销售,与其相关的文化也随之传播。因此发展我国自主的益 智、健康的游戏软件已是当务之急。游戏是一种基于计算机的应用软件,是新型的休闲 娱乐方式。当前开发的游戏软件应该做到知识性、娱乐性、趣味性、教育性相统一。 斗破苍穹(手机游戏设计) - 2 - 1.2 研究现状及发展趋势研究现状及发展趋势
19、1.2.1 国内外研究现状国内外研究现状 在国外,手机游戏正在经历一个黄金发展时期。日本是游戏产业最发达的国家,早 在几年前,日本的手机游戏业就已经蓬勃发展起来。就拿全球最大的手机 Java 游戏霸主 宫路武来说,从他 2000 年创办手机游戏公司开始,只花了 4 年时间,就在日本这个全球 最大的手机游戏市场建立了霸业,实现年营收 2300 万美元的奇迹。虽然美国相对于日本 及一些欧洲国家,在手机 Java 游戏方面的发展相对滞后,但是在 2003 年,其手机游戏 市场的收入也已经达到 1600 万美元。 在国内,有着近 3 亿的手机用户,即使只有 10%的用户,每月只下载一款游戏,也足 以使
20、其形成一个规模庞大的产业。但是目前仅有不足 1%的用户下载过手机游戏,这使得 这块被无数人看好的市场并没有达到和人们预期相吻合的水平。人们似乎更容易接受移 动其他的增值业务(比如短信、彩铃业务等) ,而对手机游戏的认知度却相当低。 1.2.2 发展趋势发展趋势 未来的手机游戏平台因为 ATI 和 nVIDIA 两大 PC 显示芯片厂商专业级水准的加入而 更为热闹。在 ATI 推出手机和 PDA 手机 3D 多媒体芯片(包含专用的媒体处理器 Media Processor 及 3D 加速器 3D Accelerator)后,老对头 NVIDA 也毫不示弱,公布了他们的 3D 多媒体芯片,并且应用
21、于三菱和神达 MiTAC 的智能手机上。这些芯片在植入手机后能 够有效的提升图形显示性能,使手机在进行多媒体演示和游戏时更够有出色显示效果。 不过这些厂家提供的都是硬件芯片,要完全发挥其在 3D 图形的表现能力还需要相应支持 的 API 才能相辅相成,而目前主要的 API 包括 2003 年 7 月发表的 OpenGL ES(OpenGL for Embedded Systems),就是 OpenGL 的嵌入式版本,是为嵌入系统而开发的小型标准三维 (3D)图形应用编程接口(API),并受到那些意图将 3D 游戏引入移动设备的游戏开发商、 手机厂商、游戏引擎供应商和 3D 图形芯片公司的热烈追
22、捧。目前已知 NVIDIA AR10 与 ATI Imageon 23xx 3D 芯片,已符合 OpenGL ES 1.0 的标准。而最新 Symbian OS 8.0 版 本也将支援 OpenGL ES API。相信不久后,手机上也能玩像是 CS、DOOM、Quake 的 FPS 游 斗破苍穹(手机游戏设计) - 3 - 戏了。另一种则是微软推出 Direct3Dm,这是微软专为移动设备开发的,其中 m 就是 mobile 的意思。目前 Direct3Dm 尚在制定阶段, nVIDIA 在法国戛纳举行的 3GSM 世界年 会上发布的 AR10 就是支持 Direct3Dm 新产品。 Dire
23、ct3Dm 的意义在于未来游戏厂商如 果要把游戏移植到 Mobile 平台会变得比较容易,不需再去用新的平台去设计游戏,以降 低游戏开发移植的成本。目前 ATI 的产品据称已经集成到日本最新一代 3G FOMA 手机 F900I 中,而该机正好采用的是 symbian 操作系统。由此可见智能化和 3G 应用是未来游 戏平台的大势所趋。 1.3.1 设计原理设计原理 采用 java 面向对象的设计思想,主要涉及和用到 J2ME 中的类和功能有: Display 类代表了系统显示屏和输入设备的管理器,包含用来获取设备属性的方法, 以及要求在设备上显示的对象的方法。 画布类对图形绘制和文本的精确控制
24、,只需要指定坐标即可,坐标以屏幕的最左上 角为原点即(0,0)为初始点,横向为 x 轴纵为 y 轴。 游戏画布类中提供游戏基本接口缓冲技术,直接得道设备键盘的物理状态等,精灵 类中的图片分割显示技术。 线程类,线程的不断执行实现对整个游戏的控制。 分块图层类中的图片分块平铺填充技术来实现游戏的背景连续无间隔的显示。 Grphics 类中在画布上绘制各种图形和图标,文本等各种元素的绘制技术,Random 类的随机数技术。 player 类中的音乐播放技术来实现游戏的背景音乐。 其中用到一些算法如金币取值绘制对应的数字图片和解决不支持 nextInt()随机数等 一些简单的算法。 1.3.2 方案
25、选择方案选择 本程序的实现方案可以通过使用 2 个不同的类来实现游戏的全部功能 方案一:MILP1.0 主要使用 Canvas 类,且不引入精灵类来实现 斗破苍穹(手机游戏设计) - 4 - 使用此类来实现飞机和子弹的碰撞检测,需要亲自来编写,而最大的不足在于如果 自己编写碰撞检测的话,只能达到一个特定的区域的检测,也就是子弹所在的矩形区域 和飞机所在的矩形区域,利用是否有重叠的方法来检测碰撞,但是存在一个问题就是子 弹和飞机不可能是规则的矩形图像,也就是说当子弹从飞机的左边或者右边过来的时候, 当进入飞机所在的矩形区域的时候就会认为子弹碰上了飞机,但是事实上是没有碰到的, 而程序确认为它们相
26、撞了,所以这样的方法存在一个检测不准确的问题。此方案还存在 着一个问题就是,不能使用双缓冲技术,必须得由自己来编写代码来实现。在使用此方 法的过程中还证实了还存在一个键盘事件响应的问题,重载 keyPress()方法来监听键盘 的时候不能够使用十进制求余的方法来侦听用户按下了哪个按键,所以在速度和性能上 都比较不理想。 方案二 MIDLP2.0 主要使用 GanmeCanvas 类和精灵类来实现 在使用第一种方案编写程序的过程中遇到了上述的几个问题,而这些问题在 MIDLP2.0 里面都已经封装了解决的办法,不仅拥有原来的所有方法,如 GameCanvas 类继 承 Canvas 类,而且还加
27、入了双缓冲的实现方法和精灵类的像素检测方法和 GameCamvas 类十进制求余来侦听键盘的方法,并且提供了比 MIDLP1.0 更强大的功能,所以使用 MIDLP2.0 中新增加的功能来实现本程序。故选择方案 2 来实现此次所开发的程序。 1.3.3 基本内容基本内容 本课题以研究基于 J2ME 的手机游戏开发设计及其特点,具体研究内容如下: (1)手机游戏开发以及 J2ME 的基本理论和 J2ME 类库的使用 (2)J2ME 体系结构的研究 (3)MIDP 移动信息设备简表研究 MIDP 的目标硬件环境 MIDP 应用程序 CLDC 和 MIDP 库中的类 (4)JEME API 的研究
28、精灵类的应用 斗破苍穹(手机游戏设计) - 5 - 分块图层类的应用以及 图层管理器的应用 各种事件发生器的应用 1.4 技术要求、研究方法和待解决的关键问题技术要求、研究方法和待解决的关键问题 1.4.1 技术要求技术要求 (1)GameStart 类主要提供程序的入口,设置 Displayable 对象和启动线程,以及实现 程序的退出功能。 (2)MyGameCanvas 类程序最主要是用来在屏幕上绘制游戏选择菜单界面、游戏帮助界 面、关于游戏界面、游戏设置界面、关卡选择界面、商店物品购买界面和购买成功提示 界面,以及玩家飞机和敌机的绘制、子弹与飞机碰撞的检测、金币图片的绘制、玩家飞 机生
29、命的绘制,实现了按键的侦测和事件处理。 (3)EnemyPlane 类主要实现了产生敌机以及移动的控制以及移动。 (4)Bullet 类主要实现了敌机子弹和玩家子弹的产生以及移动的控制。 (5)PlayPlane 类主要实现了玩家飞机的产生和移动。 (6)Sound 类主要实现游戏背景音乐的播放。 1.4.2 研究方法研究方法 (1)参考现有的例子,深刻理解它的整体执行流程所具有的各功能,读懂程序的关键 部分代码,使对 J2ME 射击类(FPS)游戏的整体开发流程有个比较清楚的认识,最后构思 出本程序所要实现的功能整体的流程。 (2)在对 J2ME 射击类(FPS)游戏有个清晰的认识和了解,并
30、且对自己的的程序有个清 晰的构思,然后按照软件开发的总过程进行设计,经历定义和计划、需求分析、软件设 计、软件编码、软件测试等过程,研究开发自己的程序。 斗破苍穹(手机游戏设计) - 6 - 1.4.3 待解决的关键问题待解决的关键问题 (1)关于界面的文字说明如何依次的向上移动? (2)玩家获得的金币如何动态的使用图片显示出来? (3)商店界面物品如何根据选择的装备种类而画出相应的装备并且显示相应说明文字 以及说明文字的滚动速度如何控制? (4)如何根据不同的子弹对玩家飞机造成不同程度的生命伤害攻击力,以及如何把飞 机生命和相应的生命图片关联起来动态的显示? (5)敌机发出子弹的时候如何如何
31、才能够向飞机在同一时间出现的位置移动? (6)如何能够让敌机做不规则的移动并且不会超出屏幕以外且在特定的时候发射子弹? (7)在游戏菜单选择界面有游戏,关于游戏,和游戏设置,但是在暂停的时候也由相 应的选项而在这几个界面都由一个返回的按钮当点击这个按钮的时候通过改变游戏的状 态可以返回到上一个界面,但是当暂停界面调用过后再点返回的时候会直接的返回到游 戏菜单选择界面而不是游戏界面? (9)当检测到碰撞的时候这个子弹和飞机要从屏幕上除去,但是当使用向量移除的时 候会出现闪屏的效果? 斗破苍穹(手机游戏设计) - 7 - 第 2 章 系统分析 2.1 功能概述功能概述 本系统主要要实现的功能有游戏
32、菜单的绘制,其中游戏菜单包括“主菜单” , “关卡 选择菜单” , “武器商店武器选择菜单” 。游戏控制的实现,游戏控制方面包含通常的“开 始” , “退出” , “继续” ,游戏中的“暂停”还有关卡选择的控制。本系统为增进游戏可玩 性特别设置了武器商店武器商店包括如上图五大类。本系统在游戏运行方面做了背景、 子弹、敌机、玩家飞机、金币、生命、游戏菜单和飞弹的绘制。 2.2 功能分析功能分析 2.2.1 主要功能分析主要功能分析 本系统的菜单功能模块主菜单包括开始游戏、游戏帮助、关于游戏、音乐开关、退 出游戏和继续游戏。其中开始游戏并不是直接进入游戏,而是进入关卡选择菜单。继续 游戏是如果有存
33、档则读取存档后进入游戏。关卡选择菜单包括第一关到第六关的绘制和 武器商店的绘制,其中每一个选择点包含着对应的标题和说明,说明文字每次向上滚动 一行。武器商店武器选择菜单包含机体、机枪、弹舱、飞弹和配件的选择。对应的物品 有对应的说明,武器商店界面中机体提供玩家购买飞机的地方,机枪可以让玩家升级武 器,弹舱是增加在游戏可以使用的飞弹上限,飞弹是提供玩家购买飞弹的地方,配件是 提供玩家购买配件的地方,配件可以增加飞机的固有属性(生命,防御) 。另外本界 面还有剩余金币的显示,金币的余额是购买物品的关键。 游戏控制模块包含了游戏的基本控制,开始、退出、继续还有游戏中的暂停和关卡 选择、武器购买等。其
34、主要原理是通过按键状态的改变,来改变游戏的状态以达到游戏 的整体控制。 武器商店是本系统的一大特色,其中机体一共有三种,分别子弹不同,攻击强度也 不同。机枪一共有三种,即每种飞机有三种子弹类型可供购买,弹舱初始设定有五个, 斗破苍穹(手机游戏设计) - 8 - 也即是可以填装五个飞弹。飞弹一共有三种,分别为全屏消子弹、攻击敌机、和这两者 的结合。对于每种飞弹来说有不同的价格。配件设计的也是三种,暂定的三种配件分别 加攻击,防御和生命这几大属性。 游戏运行方面主要包含背景、子弹、敌机、玩家飞机、金币、生命、游戏菜单和飞 弹的绘制。其中游戏的每一关有不同的背景,背景采用的是一张首尾无间隙连接的图片
35、。 不同类的飞机有不同的子弹,玩家飞机的子弹是自动且连续的,并且子弹发射的初始位 置是随玩家移动的,但是子弹出现之后的移动轨迹又是固定不变的。玩家每种飞机的子 弹有四种。敌机的子弹是少量的随机的,除 BOSS 之外每种敌机的子弹应当不超过两种。 敌机暂时设计的有两种,第一种出现位置是在屏幕的上半部分边缘随机出现,然后选择 随机的移动轨迹进行移动。第一种的敌机有四种移动的轨迹。第二种敌机随机出现在屏 幕的上边缘,第二种敌机有两种移动轨迹。分别斜向左下,再返回;和反向。敌机都有 检测是否被攻击的方法,然后执行相应的动作。玩家飞机在屏幕上出现一个,且初始坐 标确定为屏幕下方中间。玩家飞机随时判断按键
36、状态,一旦对应方向状态改变则飞机向 相应方向移动飞机共有八个移动的方向上、下、左、右和左上、右上、左下、右下。玩 家飞机在关卡内不会改变,只有当玩家购买了不同飞机,才会显示不同的飞机。同时玩 家飞机出现的时候随之而出现的有子弹。本系统中金币有两种概念,一种是金币的数量 计数,也即是持久的可被玩家看见的,提供给玩家金币余额的信息。另一种是敌机被打 爆后爆出来的金币,一旦被玩家“吃掉”或移除屏幕就会消失。生命是由两张图片显示 的,两张图一张生命槽,一张生命,它们和玩家飞机生命以一定关系联系起来。就构成 了生命显示效果。在游戏中屏幕左下部位还有菜单的绘制点击菜单的话,游戏的绘制就 暂停,转为菜单的绘
37、制,再写对应的菜单项的操作。在屏幕的右下方绘制的是飞弹,飞 弹是当触发一定的按键事件时才会激活。以上所有要绘制的元素中生命条、金币余额显 示、菜单、飞弹信息、玩家飞机、玩家飞机子弹、背景都是随着开始游戏同时绘制到屏 幕上的,敌机、敌机所爆的金币、敌机子弹、敌机的爆炸效果、玩家飞机的爆炸效果、 玩家“吃掉”奖励的提示信息等,都是在游戏运行中遵循一定的规则随时间出现的。 斗破苍穹(手机游戏设计) - 9 - 2.2.2 关键功能分析关键功能分析 (1)在上述功能中玩家金币余额的显示是一个难点,因为我们要做到的是任意给一个 六位以内的数,然后把这六位数的每一位对应图片()然后显示在屏幕 上。当这个数
38、发生改变时,图片显示的应当是和这个数相同的书,不够六位的前面显示 图片零。针对这个问题我们这样思考:0-9 十个数正好对应图片的分块后的十个图片。因 此我们只需要把任意给出的数处理一下剥离出这个数的每一位,那么就可以和要显示的 金币数对应起来,然后显示,这样就达到了金币余额的显示效果。 (2)关于玩家飞机生命的绘制分析,玩家的生命在这里我们使用的是一张图片,每当 玩家飞机生命减少时,图片就向左移动一定距离,配合另一张图片生命槽两相结合就可 以达到生命显示的效果,其中关键的是,图片左移的距离和玩家飞机生命减少的一个比 例关系。如果图片移动的过快,就会出现生命看起来已经没有了,但是玩家飞机却还活
39、着。所以在这里我们需要算好飞机减生命时,对应生命的图片应该移动多少,而且玩家 飞机被不同的攻击,减的生命也不同。 (3)关于敌机出现的位置及其移动的分析,敌机是本系统中极为重要的一块,敌机的 出现时机我们设计是随着线程运行到一定次数,开始出现敌机,而后随机选择出现的位 置,再根据出现位置确定移动的轨迹。这里要注意的是,需要让出现的敌机不会出现 “初始位置在左上角,移动的方向却是左下方。 ”这里还有要控制如果两架敌机随机出现 的位置一样且移动方向一样出现两架敌机重合的错误。还有敌机移动轨迹为曲线的问题, 在本系统中,我们思考,敌机轨迹之所以为曲线,其本质是因为在移动的时候它的方向 是一直在变化的
40、。 (4)关于敌机发射子弹的问题,在本系统中敌机的一切行为都是自动的,所以我们要 考虑敌机的子弹问题,因为敌机不可能象玩家飞机子弹一样有规律,敌机子弹的发射讲 究的是一个无迹可寻。不能太密,又必须在屏幕内,而且最好在屏幕的上半部分并且敌 机子弹最好又要跨过大半个屏幕尽量不要在贴近屏幕边缘发射。关于这块功能的实现我 们使用的方式是设置特定的子弹发射区,也即是只有飞机移动到这一块区域,才会释放 子弹,当这块区域足够小的时候,再加上敌机出现位置和移动的随机性的时候就可以组 斗破苍穹(手机游戏设计) - 10 - 合出杂乱无序的敌机子弹。 斗破苍穹(手机游戏设计) - 11 - 第 3 章 系统设计
41、本程序是基于 J2ME 技术的飞行射击类游戏,为玩家打造了一个功能强大,场景真实, 趣味十足的天空战斗手机游戏,本游戏共分为 6 关,每一关玩家都在不同的场景中战斗, 玩家可以通过购买武器装备来提高自身的战斗力,如果金币不够也可在打败对方飞机的 时候获得对方飞机所产生的物品奖励,从而也可提高自身的战斗力,并且玩家多次的玩 本游戏的话金币还可以保存下来累加起来,也可保存已经购买过武器装备,以便下次使 用。 3.1 功能模块设计功能模块设计 系统功能模块图 本游戏共分为以下几大模块 (1)游戏控制模块:主要控制游戏的运行状态通过改变游戏的状态来达到控制游戏的 效果。 (2)游戏菜单模块:主要绘制游
42、戏中所出现的菜单包括“主菜单” 、 “关卡选择菜单” 、 “武器商店菜单” 、 “暂停菜单” 。 斗破苍穹(手机游戏设计) - 12 - (3)游戏运行模块:提供一个完整游戏开始后的所需要的所有元素。包括背景、玩家 飞机、玩家子弹、玩家金币余额、玩家生命、敌机、敌机子弹、飞弹等元素的绘制。 (4)武器商店模块:武器商店主要提供玩家购买物品的场所,购买武器花费玩家金币, 可以在各方面提升玩家属性,以达到降低玩家游戏难度的目的。 在本系统中我主要负责游戏运行模块的设计及其实现。 3.2 系统配置方案系统配置方案 (1)Windows XP (2)eclipse 3.5.2、Eclipse 是一个开
43、放源代码的与 NetBeans、Sun ONE Studio 和 Borland Jbuilder 类似的一种基于 Java 的整合型可扩展开发平台,也是目前最著名的开 源项目之一,IBM 在最近几年里也一直在大力支持该项目的发展,目标是将其做成用以替 代 IBM Visual Age for Java(简称 IVJ)的下一代 IDE 开发环境。 (3) eclipseme.feature_1.7.9_site,开发 j2me 手机游戏需要用的插件 (4)WTK2.5.2(Wireless Toolkit2.52.2),由 Oracle 公司提供 (5)jdk1.6(JAVA Developm
44、ent Kit 1.6) ,由 Oracle 公司提供 (6)手机顽童模拟器 用于测试打包程序最好的模拟器 选择 eclipse+eclipseme+wtk 是因为这三件套开发 j2me 手机游戏非常方便,由 eclipse 所提供的便捷功能,使得不必记住每一个类的方法全称,就可以轻易的书写代码。 选择手机顽童模拟器,是因为手机顽童模拟器脱离了 eclipse 开发环境,模拟起制做的 手机游戏更真实。 3.3 详细设计详细设计 3.3.1 总体设计总体设计 本系统的设计共包含 GameStart、MyGameCanvas、PlayPlane、EnemyPlane、Bullet、Sound 六个
45、类的设计。 GameStart 类是程序的入口,系统开始时首先执行 GameStart 类中的构造方法,创建 斗破苍穹(手机游戏设计) - 13 - 一个 MyGameCanvas 对象,并设置在当前屏幕上显示,之后执行 startApp()方法开始启动 游戏的主线程。Sound 类实现音乐的播放。 PlayPlane 类继承自 Sprite 类是玩家飞机类,主要进行玩家飞机的绘制和一些相关 动作。其中主要有 move()方法控制玩家飞机的移动。fire()方法控制玩家飞机的开火。 setExplod()方法设置爆炸初始化工作。 playPlaneExplod()具体绘制玩家飞机的爆炸。 ge
46、tmoney()方法用来显示当玩家飞机得到金币时所显示的提示信息。 setfeidanPosition()方法用来设置飞弹初始化工作。drawfeidan()方法用来具体绘制飞 弹。setActivate()方法设置是否激活玩家子弹。 EnemyPlane 类继承自 Sprite 类是敌机类,主要进行敌机的绘制和一些相关动作。其 中 setEnemyPlanePosition()方法设置敌机的出现位置,并且选择移动的轨迹。move()方 法控制敌机的移动。fire()方法控制敌机的开火。setExplodPosition()方法设置敌机爆 炸的初始坐标。并激活敌机爆炸。enemyPlaneEx
47、plod()敌机爆炸的绘制。 setmoneyPosition()方法设置敌机爆金币的初始坐标,并激活金币绘制。makeMoney()方 法是当敌机被玩家飞机打爆后的金币的绘制。getEnemyPlaneType()方法用来得到敌机的 类型。setActivate()方法设置是否激活敌机子弹。 Bullet 类继承自 Sprite 类是子弹类,主要用来绘制子弹,以及设置子弹移动的轨迹, Bullet 类有两个构造方法,分别对应玩家飞机类和敌机类。其中方法是 drawBullet()根 据飞机类型的不同而选择不同的子弹发射方式。 MyGameCanvas 类继承自 GameCanvas 类实现了
48、 Runnable 接口,它是本程序的核心, 在 MyGameCanvas 类中控制着游戏的一切运行,其中 load()方法用来加载游戏所要用到的 资源。init()做一些初始化工作。这两个方法在构造方法中被调用。start()方法用来启 动游戏线程。run()方法中执行线程要执行的代码。tick()方法和 render()方法在 run() 方法中被执行。tick()主要根据“游戏状态”来控制游戏的运行速度。render()方法根 据“游戏状态”来决定绘制的内容。drawLogo()方法用来绘制 Logo 界面。drawMenu()方 法用来绘制主菜单界面。drawAbout()方法用来绘制
49、关于界面。drawHelp()方法用来绘制 帮助界面。drawSound()方法用来绘制音乐设置界面。drawPlayMenu()方法用来绘制关卡 选择界面。drawShop()方法用来绘制武器商店界面。drawGame()方法用来绘制游戏运行 斗破苍穹(手机游戏设计) - 14 - 界面。keyPressed()方法用来侦听按键状态并做以处理(如改变游戏状态等) 。 游戏开始后初始游戏状态为 GAME_STATE_LOGO 状态,程序根据 tick()方法设置 Logo 显示的速度,再根据 render()方法判断并调用 drawLogo()方法绘制 Logo 界面,当 Logo 界面显示完之后将游戏状态改为主菜单(GAME_STATE_MENU)状态,线程重新执行 render()方法是由于游戏状态的改变所以调用 drawMenu()方法绘制主菜单,然后玩家对 游戏进行操作选择相应的选项,在 keyPressed()方法中通过查看玩家按下的键值来改变 为对应的状态,再在 render()中根据游戏状态执行绘制相应的界面的动作。如果游戏状 态为关卡选择状态(GAME_STATE_PLAY_MENU) ,就调用 drawPlay
链接地址:https://www.31doc.com/p-2042783.html