斗破苍穹——手机设计游戏毕业论文(编辑修改稿)内容摘要:

个不同的类来实现游戏的全部功能 方案 一: 主要使用 Canvas 类 ,且不引入精灵类来实现 斗破苍穹(手机游戏设计) 4 使用此类来实现 飞机和子弹的碰 撞检测,需要亲自来编写,而最大的不足在于如果自己编写碰撞检测的话 ,只能达到一个特定的区域的检测,也就是子弹所在的矩形区域和飞机所在的矩形区域,利用是否有重叠的方法来检测碰撞,但是存在一个问题就是子弹和飞机不可能是规则的矩形图像,也就是说 当 子弹从飞机的左边或者右边过来的时候,当进入飞机所在的矩形区域的时候就会认为子弹碰上了飞机,但是事实上是没有碰到的,而程序确认为它们 相撞 了,所以这样的方法存在一个检测不准确的问题。 此方 案还存在着一个问题就是,不能使用双缓冲技术,必须得由自己来编写代码来实现。 在使用此方法的过程中还证实了还存在一个键盘事件响应的问题,重载 keyPress()方法来监听键盘的时候不能够使用十进制求余 的方法来侦听用户按下了 哪 个按键,所以在速度和性能上都比较不理想。 方案二 主要使用 GanmeCanvas 类和精灵类来实现 在使用第一种方案编写程序的过程中遇到了上述的几个问题,而这些问题在 里面都已经封装了解决的办法, 不仅拥有原来的所有方法 ,如 GameCanvas 类继承 Canvas 类 , 而且还加入了双缓冲的实现方法和精灵类的像素检测方法 和 GameCamvas类十进制求 余 来侦听键盘的方法 , 并且提供了比 更强大的功能,所以使用 中新增加的功能来实现本程序。 故选择方案 2来实现此次所开发的程序。 基本内容 本课题以研究基于 J2ME 的手机游戏开发设计及其特点,具体研究内容如下 : (1)手机游戏开发以及 J2ME的基本理论和 J2ME 类库的使用 (2)J2ME 体系结构的研究 (3)MIDP 移动信息设备简表研究 MIDP 的目标硬件环境 MIDP 应用程序 CLDC 和 MIDP 库中的类 (4)JEME API 的研究 精灵类的应用 斗破苍穹(手机游戏设计) 5 分块图层类的应用以及 图层管理器的应用 各种事件发生器的应用 技术要求、研究方法和待解决的关键问题 技术要求 (1)GameStart 类主要提供程序的入口 ,设置 Displayable 对象和启动线程,以及实现程序的退出功能。 (2)MyGameCanvas 类 程序最主要是用来在屏幕上绘制游戏选择 菜单界面、游戏帮助界面、关于游戏界面、 游戏设置界面 、 关卡选择界面 、商店物品购买界面和购买成功提示界面,以及玩家飞机和敌机的绘制、 子弹与飞机碰撞的检测 、 金币图片的绘制 、 玩家飞机生命的绘制 , 实现了按键的侦测和事件处理。 (3)EnemyPlane 类主要实现了产生敌机 以及移动的控制 以及移动。 (4)Bullet 类主要实现了敌机子弹和玩家子弹的产生以及移动的控制。 (5)PlayPlane 类主要实现了玩家飞机的产生 和移动。 (6)Sound 类主要实现游戏背景音乐的播放。 研究方法 (1)参考现有的例子, 深刻理解它的整体执行流程所具有的各功能,读懂程序的关键部分 代码, 使对 J2ME 射击类 (FPS)游戏的整体开发流程有个比较清楚 的 认识 ,最后构思出本程序所要实现的功能整体的流程。 (2)在对 J2ME 射击类 (FPS)游戏有个清晰的认识和了解,并且对自己的的程序有个清晰的构思 , 然后 按照软件开发的总过程进行设计 ,经历定义和计划、需求分析、软件设计、软件编码、软件测试等过程,研究开发自己的程序。 斗破苍穹(手机游戏设计) 6 待解决的关键问题 (1)关于界面的文字说明如何依次的向 上 移动。 (2)玩家获得的金币如何动态的使用图片显示出来。 (3)商店 界面 物品 如何根据选择的装备种类而画出 相应 的装备并且显示 相应 说明文字以及说明文字的滚动速度如何控制。 (4)如何根据不同的子弹对玩家飞机造成不同程度的生命伤害 攻击力 ,以及如何把飞机生命和相应的生命图片关联起来动态的显示。 (5)敌机发出子弹的时候如何如何才能够向飞机在同一时间出现的位置移动。 (6)如何能够让 敌机 做不规则的 移动 并且不会超出屏幕以外且在特定的时候发射子弹。 (7)在游戏菜单选择界面有游戏,关于游戏,和游戏设置 ,但是在暂停的时候也由相应的选项而在这几个界面都由一个返回的按钮当点击这个按钮 的时候通过改变游戏的状态可以返回到上一个界面,但是当暂停界面调用过后再点返回的时候会直接的返回到 游戏菜单选择界面而不是游戏界面。 (9)当检测到碰撞的时候这个子弹和飞机要从屏幕上除去,但是当使用向量移除的时候会出现闪屏的效果。 斗破苍穹(手机游戏设计) 7 第 2 章 系统分析 功能概述 本系统主要 要 实现的功能 有游戏菜单的绘制,其中游戏菜单包括“主菜单”,“关卡选择菜单”,“武器商店武器选择菜单”。 游戏控制的实现,游戏控制方面包含通常的“开始”,“退出”,“继续”,游戏中的“暂停”还有关卡选择的控制。 本系统为增进游戏可玩性特别设置 了武器商店武器商店包括如上图五大类。 本系统在游戏运行方面做了背景、子弹、敌机、玩家飞机、金币、生命、游戏菜单和飞弹的绘制。 功能分析 主要功能分析 本系统的菜单功能模块主菜单包括开始游戏、游戏帮助、关于游戏、音乐开关、退出游戏和继续游戏。 其中开始游戏并不是直接进入游戏,而是进入关卡选择菜单。 继续游戏是如果有存档则读取存档后进入游戏。 关卡选择菜单包括第一关到第六关的绘制和武器商店的绘制,其中每一个选择点包含着对应的标题和说明,说明文字每次向上滚动一行。 武器商店武器选择菜单包含机体、机枪、弹 舱、飞弹和配件的选择。 对应的物品有对应的说明, 武器商店界面 中机体提供玩家购买飞机的地方,机枪可以让玩家升级武器,弹舱是增加在游戏可以使用的飞弹上限,飞弹是提供玩家购买飞弹的地方,配件是提供玩家购买配件的地方,配件可以增加飞机的固有属性(生命,防御„„)。 另外 本界面还有剩余金币的显示,金币的余额是购买物品的关键。 游戏控制模块包含了游戏的基本控制,开始、退出、继续还有游戏中的暂停 和关卡选择、武器购买等。 其主要原理是通过按键状态的改变,来改变游戏的状态以达到游戏的整体控制。 武器商店是本系统的一大特色,其中机体 一共有三种,分别子弹不同,攻击强度也不同。 机枪一共有三种,即每种飞机有三种子弹类型可供购买,弹舱初始设定有五个,也即斗破苍穹(手机游戏设计) 8 是可以填装五个飞弹。 飞弹一共有三种,分别为全屏消子弹、攻击敌机、和这两者的结合。 对于每种飞弹来说有不同的价格。 配件设计的也是三种,暂定的三种配件分别加攻击,防御和生命这几大属性。 游戏运行方面主要包含 背景、子弹、敌机、玩家飞机、金币、生命、游戏菜单和飞弹的绘制。 其中游戏的每一关有不同的背景,背景采用的是一张首尾无间隙连接的图片。 不同类的飞机有不同的子弹 ,玩家飞机的子弹是自动且连续的,并且子弹发射的初始位置是随玩家移动的,但是子弹出现之后的移动轨迹又是固定不变的。 玩家每种飞机的子弹有四种。 敌机的子弹是少量的随机的,除 BOSS 之外每种敌机的子弹应当不超过两种。 敌机暂时设计的有两种,第一种出现位置是在屏幕的上半部分边缘随机出现,然后选择随机的移动轨迹进行移动。 第一种的敌机有四种移动的轨迹。 第二种敌机随机出现在屏幕的上边缘,第二种敌机有两种移动轨迹。 分别斜向左下,再 返回 ;和反向。 敌机都有检测是否被攻击的方法,然后执行相应的动作。 玩家飞机在屏幕上出现一个,且初始坐 标确定为屏幕下方中间。 玩家飞机随时判断按键状态,一旦对应方向状态改变则飞机向相应方向移动飞机共有八个移动的方向上、下、左、右和左上、右上、左下、右下。 玩家飞机在关卡内不会改变,只有当玩家购买了不同飞机,才会显示不同的飞机。 同时玩家飞机出现的时候随之而出现的有子弹。 本系统中金币有两种概念,一种是金币的数量计数,也即是持久的可被玩家看见的,提供给玩家金币余额的信息。 另一种是敌机被打爆后爆出来的金币,一旦被玩家“吃掉”或移除屏幕就会消失。 生命是由两张图片显示的,两张图一张生命槽,一张生命,它们和玩家飞机生命以一定 关系联系起来。 就构成了生命显示效果。 在游戏中屏幕左下部位还有菜单的绘制点击菜单的话,游戏的绘制就暂停,转为菜单的绘制,再写对应的菜单项的操作。 在屏幕的右下方绘制的是飞弹,飞弹是当触发一定的按键事件时才会激活。 以上所有要绘制的元素中生命条、金币余额显示、菜单、飞弹信息、玩家飞机、玩家飞机子弹、背景都是随着开始游戏同时绘制到屏幕上的,敌机 、 敌机所爆的金币、敌机子弹 、敌机的爆炸 效果 、玩家飞机的爆炸 效果 、玩家“吃掉”奖励的提示信息 等, 都是在游戏运行中 遵循一定的规则随时间出现的。 斗破苍穹(手机游戏设计) 9 关键功能分析 (1)在上 述功能中玩家金币余额的显示是一个难点,因为我们要做到的是任意给一个六位以内的数,然后把这六位数的每一位对应图片 ( )然后显示在屏幕上。 当这个数发生改变时,图片显示的应当是和这个数相同的书,不够六位的前面显示图片零。 针对这个问题我们这样思考: 09十个数正好对应图片的分块后的十个图片。 因此我们只需要把任意给出的数处理一下剥离出这个数的每一位,那么就可以和要显示的金币数对应起来,然后显示 , 这样就达到了金币余额的显示效果。 (2)关于玩家飞机生命的绘制分析,玩家的生命在这里我们使用的是一张图片,每当玩家飞机生命减 少时, 图片就向左移动一定距离,配合另一张图片生命槽两相结合就可以达到生命显示的效果,其中关键的是,图片左移的距离和玩家飞机生命减少的一个比例关系。 如果图片移动的过快,就会出现生命看起来已经没有了,但是玩家飞机却还活着。 所以在这里我们需要算好飞机减生命时,对应生命的图片应该移动多少,而且玩家飞机被不同的攻击,减的生命也不同。 (3)关于敌机出现的位置及其移动的分析,敌机是本系统中极为重要的一块,敌机的出现时机我们设计是随着线程运行到一定次数,开始出现敌机,而后随机选择出现的位置,再根据出现位置确定移动的轨迹。 这里 要注意的 是,需要让出现的敌机 不会出现“初始位置在左上角,移动的方向却是左下方。 ”这里还有要控制如果两架敌机随机出现的位置一样且移动方向一样出现两架敌机重合的错误。 还有敌机移动轨迹为曲线的问题,在本系统中,我们思考,敌机轨迹之所以为曲线,其本质是因为在移动的时候它的方向是一直在变化的。 (4)关于敌机发射子弹的问题 , 在本系统中敌机的一切行为都是自动的 , 所以我们要考虑敌机的子弹问题 , 因为敌机不可能 象 玩家飞机子弹一样有规律 ,敌机子弹的发射讲究的是一个无迹可寻。 不能太密,又必须在屏幕内,而且最好在屏幕的上半部分 并且敌机子弹最好又要跨过大半个屏幕尽量不要在贴近屏幕边缘发射。 关于这块功能的实现我们使用的方式是设置特定的子弹发射区,也即是只有飞机移动到这一块区域,才会释放子弹,当。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。