毕业论文范文——手机游戏(堡垒)的设计与开发_第1页
毕业论文范文——手机游戏(堡垒)的设计与开发_第2页
毕业论文范文——手机游戏(堡垒)的设计与开发_第3页
毕业论文范文——手机游戏(堡垒)的设计与开发_第4页
毕业论文范文——手机游戏(堡垒)的设计与开发_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

手机游戏(堡垒)的设计与开发手机游戏(堡垒)的设计与开发 摘摘 要要 随着手机业务的迅速发展,手机游戏逐渐成为移动增值服务的兴奋点。本 毕业设计就着眼于 J2ME 技术的应用,设计与开发一款探险类手机游戏(堡垒)。 该堡垒游戏是基于 J2ME 开发的手机 RPG 游戏,采用 midp2.0 技术实现了菜 单、地图、主角动作及怪物动作和 AI 等,主要通过精灵间的碰撞检测来触动事 件发生。游戏的主流程是玩家利用手机键盘操作主角在堡垒中拾取道具破解迷 宫,并且随着关数的增加,游戏的难度也逐渐增加。另外,游戏中还包括了排 行榜,声音设置,帮助等各种附加功能。其中充满了趣味性和刺激性,是适合 各年龄段的益智冒险类游戏。 本论文介绍了 J2ME 的相关技术及该堡垒游戏程序的结构分析和具体功能的 实现。 关键词:关键词:J2ME; 手机游戏; 堡垒 The Design and Development of a Handset Game (Castle) Abstract With the rapid development of cell phone business, cell phone games have gradually become the hotspot of mobile value-added services. This graduate design which focuses on J2ME technology designs and develops a handset adventure game (castle). This castle game is a handset RPG game based on J2ME which mainly examines the demons collision to touch off the event. It uses midp2.0 technology to achieve the menu, the map, the hero moves, monster AI etc. The game has included the order list, the sound establishment, helps of function etc. Player operates the lead through the handset to collect the stage prop in the castle to break through the labyrinth. The difficulty of the game will gradually increase along with the increase of stage. Otherwise, this intelligence and risk game is filled with enjoyment and the irritating quality witch suits many ages. This paper introduces related technology of the J2ME and the structure analysis and the concrete function realization of this castle game procedure. Key words: J2ME;handset game;castle 目目 录录 论文总页数:23 页 1 引 言1 2 手机游戏的现状和 J2ME 的概况1 2.1 软件现状.1 2.2 J2ME 概况 .2 2.2.1 J2ME 的由来.2 2.2.2 J2ME 的 3 层体系结构及 MIDP 简介.2 2.2.3 Configuration 和 Profiles.3 2.3 J2ME 现状和前景.4 2.4 手机游戏业务5 3 开发环境介绍.5 3.1 开发环境.5 3.2 关于 SONYERICSSON WIRELESS TOOL KIT5 4 手机游戏(堡垒)的开发5 4.1 游戏的的思路、构想5 4.1.1 游戏想法的产生5 4.1.2 对游戏设计的初步认识6 4.1.3 模块成型阶段6 4.2 程序的类结构7 4.3 游戏的流程图7 4.4 游戏的实现8 4.4.1 主类 GameMIDlet 的实现 8 4.4.2 游戏画布 MyGame 类的实现.13 4.4.3 玩家精灵 GamePlayer 类的实现17 4.4.5 SoundEffects 类的实现.19 5 程序设计过程中遇到的一些重要问题.19 5.1 关于碰撞的问题19 5.2 关于游戏画面的显示问题20 结 论.20 参考文献.20 致 谢.22 声 明.23 第 1 页 共 23 页 1 1 引引 言言 Java 语言是美国 Sun Microsystem 的 James Gosling、Pratrick Naughton 及 Mike Sheridan 等人于 1991 年精心设计出来的计算机编程语言,其构想在于 实现使用同一种编程语言所写出来的程序可以在不同的平台上运作。这种架构 对于消费性电子产品而言是具有革命性的,因为在消费性电子产品中的处理器 及操作系统各不相同,要在这些平台上开发程序必须要了解各个平台的特性, 以及其提供的 API 使用方式,分别开发不同的版本才能执行,影响应用程序的 普及性。 近几年,由于微处理器性能的大幅提升,加上无线通讯技术的突破,手持 式移动设备开始受到大众的青睐。短短几年内,手机已经升级了几代产品,普 及率逐年攀升,生产效率不断上升,产品价格比个人电脑的摩尔定律有更惊人 的下调,以至手机是大多是城市居民不可缺少的一件随身设备。继短信、彩信 等服务之后,中国移动提供基于 Java 的百宝箱业务,应用产品遍及商务应用、 信息获取、英汉互译、游戏娱乐等多媒体领域。 为了适应移动数据的发展,推动无线电子商务等业务的发展,J2ME(Java 2 Micro Edition)既用于嵌入式系统的 Java 被引入无线领域。J2ME 的出现实 际上是 Java 技术的回归。作为 Java2 平台的一部分,J2ME 与 J2SE、J2EE 一起, 为无线应用的客户端和服务器端建立了完整的开发、部署环境。随着 J2ME 的应 用,它为移动互联引入了一种新的模型,既允许手机可以从互联网上下载各种 应用程序,并在手机创造可执行环境离线运行这些程序。由于定义了可执行下 载的标准,并在手机上创立了可执行环境和程序开发语言,由此,在移动通信 业第一次为软件开发商创造了巨大的商业机会,手机用户在得到丰富应用体验 的同时,也大大提高了运营商的网络流量。 2 2 手机游戏的现状和手机游戏的现状和 J2MEJ2ME 的概况的概况 2.12.1 软件现状软件现状 在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生 活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是 传统手机存在以下弊端: 1. 传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了 错误也不能更新、修改,若要增加新功能必须另换一部手机。 2. 传统手机访问互联网是通过 WAP(Wireless Application Protocal), 所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。 而 Java 技术在无线应用方面的优势非常明显: 1. 应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空大。 第 2 页 共 23 页 2. Java 技术提供了一个类库,它使的应用开发商可以创建更为直觉、丰 富的用户界面(GUI); 3.Java 技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上, 并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。 2.22.2 J2MEJ2ME 概况概况 2.2.12.2.1 J2MEJ2ME 的由来的由来 Java 的最大目标和特点,就是“一次编写,到处运行”的平台无关性。但 是,一套标准无法适应各种不同的需求。因此,Java 技术目前共有三套,分别 针对不同的平台和应用。 Standard Edition(J2SE,标准版):针对桌面端 PC 和工作站的个人和低 端商务应用。 Enterprise Edition(J2EE,企业版):针对服务器端企业级应用,支持 Servlets, JSP 和 XML 等等。 Micro Edition(J2ME,袖珍版):针对有限内存,显示和处理能力的设备, 主要是消费电子和嵌入式设备领域(这实际正是 Java 语言设计最初的目标领域) 。 图 1 java 结构 在消费电子和嵌入式设备领域,内存从几百 K 到几十 M,从没有屏幕 Web- TV,CPU 从低功耗的嵌入式处理器到 206MHz 的 RISC 处理器,硬件条件的差异 是相当大的。这就使得 J2ME 的标准需要有不同的层次和类别来适应这个复杂的 领域,因此相比之下 J2ME 就比 J2SE 和 J2EE 的标准要复杂得多。因此,清楚的 理解 J2ME 的体系结构的划分才能更好的理解和掌握 J2ME。 2.2.22.2.2 J2MEJ2ME 的的 3 3 层体系结构及层体系结构及 MIDPMIDP 简介简介 J2ME 的 3 层体系结构依照各种设备的资源特性,将 J2ME 技术构架分为简 第 3 页 共 23 页 表(Profile) 、配置(Configuration)和 Java Virtual Machine(JVM)3 层, 然后再进一步细分,这使 J2ME 能够在每一类设备的限制下工作,而同时提供最 低限度的 Java 语言功能性。 关于 J2ME 的体系结构,可以这样来进行总结:Configuration 的分类是根 据计算能力的不同来划分的,同类设备的计算能力相近。Configuration 是一 个规范,定义了这类设备的共同 Java 平台,定义与设备无关的 Java 虚拟机和 核心库,是平台相容性的基础。Profile 的分类是根据设备功能划分的,同类 功能的设备其他各种硬件条件和需求也相近。Profile 是一组 API,在某 Configuration 的基础上扩展了针对设备特定功能的 API,使得标准能够完全适 应特殊的设备,彻底发挥设备的功能。 J2ME 体系的一般结构是:由 Configuration 定义的 Java 虚拟机运行于设 备的宿主操作系统之上,构成整个平台的基础。Configuration 提供了基本的 语言特性,Profile 提供针对设备的特殊功能 API 和扩展类库。应用程序的运 行环境需要一个 Configuration 和至少一个 Profile,多个 Profile 可以共存, 也可以叠加。 MIDP(Mobile Information Device Profile)定义了针对移动信息处理设 备(主要指智能手机和一部分具有无线通信功能的 PDA)的图形界面,输入和 时间处理,持久性存储,无线电话网络连接之上的一些消息处理(例如短消息) , 安全等等 API,并且考虑到了移动信息设备的屏幕和内存限制。类似于 J2SE 中 的 Applet 框架,MIDP 提供了基于 javax.microedition.midlet 包的 MIDlet 应 用程序框架。 因为 MIDP 提出的比较早,目前重要的智能手机和 PDA 操作系统上都已有了 相应的实现,而且应用的也比较广泛。 2.2.32.2.3 ConfigurationConfiguration 和和 ProfilesProfiles 针对消费电子和嵌入式设备领域丰富多样的设备和彼此相差极大的计算能 力及各种硬件条件,J2ME 首先根据最基本的一些特征把它们划分为两类。 具备间断网络通讯能力的个人移动信息设备:如手机,双向呼机, PDA(Personal Digital Assistant,个人数字助理,也称掌上电脑)等等。 有固定的不间断网络连接的共享连接信息设备:如置顶盒(set-top boxes) , Web-TV,支持 Internet 的有屏幕电话,汽车娱乐导航系统等等。 Sun 对 J2ME 有一个很好的概括:J2ME 技术有两个设计中心手持的设 备,和可以插到墙上插座的设备。第一类设备往往是个人化的,移动的,使用 电池,体积和功耗都有限制,因此功能和计算能力有限。第二类设备一般是固 定的,因此体积没有太大限制。由于固定,可以有持续电源供应,因此功耗没 第 4 页 共 23 页 有太大问题,计算能力相对充裕。 计算能力是这两类设备的主要区别,对其上可能的应用和环境显然有着本 质影响,不同类别的设备不可能采用同样的 Java 平台,必须分别定义。针对这 两大类设备的平台规范就是 Configuration。第一类设备的 Configuration 称 为 CLDC(Connected, Limited Device Configuration) ,第二类称为 CDC(Connected Device Configuration) 。 属于同一类的设备计算能力是相似的,但是其他功能和条件还有非常大的 区别。作为 Java 平台必须保证相容性,这就必须舍弃所有的设备特殊性。因此, Configuration 就是支持一组通用设备的最小 Java 平台,作为这些设备的最小 公分母来保证不同设备间的平台相容性。这里的 Java 平台主要是指 Java 虚拟 机(JVM)和核心库。 在 Configuration 中舍弃了设备的特殊性来保证 Java 平台的相容性,但是 仅仅有 Configuration 显然是不够的,特殊的具体设备其独有的功能和硬件条 件都没有得到支持。为此,在 Configuration 的基础上,根据设备具体功能再 进行一次划分,比如智能手机,PDA 等等。功能的划分也就是其他硬件条件的 划分,比如屏幕大小,内存,计算能力,电力供应等等都是从属于功能的,因 此同功能的设备的硬件条件都是非常相似的。Profile(译为简表或者简档)就 是针对每一类功能设备的特殊性定义的与设备特性相关的 API,建筑于 Configuration 之上,作为 Configuration 的扩展和补充。例如 MIDP(Mobile Information Device Profile,移动信息设备 Profile)就定义了关于移动信 息设备(主要指智能手机和一部分具有无线通信功能的 PDA)的图形界面,输 入和时间处理,持久性存储,短消息等等的 API,并且考虑到了移动信息设备 的屏幕和内存限制。而正在制定中的 PDA Profile 则定义了针对 PDA 的 API, 其屏幕,内存条件都要大于 MIDP,但是网络方面的要求则显然和手机有所不同。 如下图所示,同属于 Configuration 的设备根据功能不同由不同的 Profile 来 支持,Profile 体现设备的特殊性,但是都建筑在一个共同的基础 Configuration 平台之上。 2.32.3 J2MEJ2ME 现状和前景现状和前景 J2ME 已经广泛的应用在了很多的移动设备上,很多的移动设备都实现 MIDP 的参考实现,但不同的移动设备还是有一些不同的地方,比如应用与手机上的 Profile 就不适合在 PDA 的 Profile。有一些系统,比如 Symbian 实现了 CLDC 和 MIDP,作为智能手机的操作系统,是理想的 MIDP 应用平台。其他的系统, 如在 Compaq 的 iPaq 上已经实现了 CDC,IBM 的 WebSphere Micro Environment 在 Pocket PC 上实现了 CLDC,CDC 和 MIDP。可见,在硬件条件较好的 PDA 上都 第 5 页 共 23 页 可以实现 CDC 的标准。由于这些主要操作系统平台都是开放的,基本可以相信, 主要的移动信息设备操作系统都将一直提供 J2ME 的支持,但是具体支持哪个标 准则并不一定死板地按照 CLDC 和 CDC 的最初定义,和设备的硬件条件和厂商的 选择有关,或者可能同时实现多个标准。所以说 J2ME 的还是在快速的发展的。 2.42.4 手机游戏业务手机游戏业务 手机游戏是移动多媒体时代最有价值的应用。这是因为,游戏是多媒体应 用中集大成的业务,图像、音乐、互动都能在游戏中实现,能充分满足用户各 方面的需求。 虽然目前手机游戏还无法与 PC 游戏相比,其显示功能和键盘输入、声音处 理能力也形成一定制约。但是随时随地可操作可联网的特性大大拓展了人们娱 乐休闲的时间和空间,以游戏功能为主的手机终端在市场上渐被认可,多媒体 功能正向手机的标配功能演进,制约手机游戏发展的技术瓶颈将被打破。当前 的手机游戏产业尽管仍然存在很多制约其发展的瓶颈,但手机游戏已显示出非 比寻常的发展速度,其市场潜力十分巨大,将成为移动增值服务市场新的增长 点。 3 3 开发环境介绍开发环境介绍 3.13.1 开发环境开发环境 操作系统:Microsoft Windows XP 程序语言:Java 2 开发平台:Java 2 Micro Edition 开发工具: Wireless Tool Kit 2.1+ UltraEdit-32_12.00a+1_SC 3.23.2 关于关于 SonyEricssonSonyEricsson WirelessWireless ToolTool KitKit SonyEricsson WTK(Wireless Tool Kit)是 SonyEricsson 公司针对 J2ME 推 出的用于手机和 Palm 等移动设备的开发包,是手机厂商的专用开发包。它通用 性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有 一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模 拟器的最基本组件,是其他 IDE 需集成采用的必备元素。 当前的最新 Release 的版本为 J2ME WTK2.2。 4 4 手机游戏(堡垒)的开发手机游戏(堡垒)的开发 4.14.1 游戏的的思路、构想游戏的的思路、构想 4.1.14.1.1 游戏想法的产生游戏想法的产生 相信大家一定都在 8 位机机上玩过冒险岛这款游戏,非常有趣味性。 游戏中玩家通过不断的闯关,来解救公主。在每个关都很很多的怪物阻挡 着你,所以需要运用各种机关或者秘籍来杀死它们。杀死他们的同时还可以获 第 6 页 共 23 页 得各种奖励,加生命,加血等,增加了游戏的趣味性。 如图 2 所示: 图 2 游戏截图 这款冒险岛游戏的实现相对于其他 RPG 或者网络版手机游戏稍简单一 些,适合初学者作为练习,所以我决定编写一款类似的手机游戏。 由于之前对手机游戏的编程知识以及游戏的设计只有初步的了解,因此, 我们在游戏的构架和思路上经历了几个阶段。 4.1.24.1.2 对游戏设计的初步认识对游戏设计的初步认识 刚开始我们只对 J2ME 有初步的了解。这时我们只是模仿之前在 PC 上看到 的游戏,用语言把游戏的实现感性的描述为几大部分: 游戏界面系统:包括游戏开始界面;游戏开局界面;游戏运行界面;游戏 结束界面。 游戏元素:菜单类;画布类;人物类;排行榜类。 4.1.34.1.3 模块成型阶段模块成型阶段 在进一步熟悉了 J2ME 知识后,对框架做出了一些修改,逐步把游戏的基本 功能确定。游戏依次进入加载界面;主菜单;游戏运行界面;游戏结束界面。 具体实现的功能为: 1主菜单,有如下选项: (1)开始游戏进入游戏界面。 (2)声音设置声音的有无选项。 (3)帮助介绍游戏的玩法。 (4)排行榜玩家所得分数的排行榜。 (5)关于用来显示说明信息以及背景图片。 第 7 页 共 23 页 2游戏运行界面,包括: 游戏界面;目前游戏得分;游戏关数;生命次数; 3游戏结束界面:游戏结束后,显示一行说明信息,然后退回到菜单。 游戏的主要模块为: 1游戏主 MIDlet(GameMIDlet)对游戏生命周期的判断;对画布类 的调用;管理游戏程序中各个屏幕之间的转换。 2游戏画布(MyGame)对游戏所用变量,常量的设定;游戏的初始化; 游戏中精灵运动轨迹的控制;精灵与砖块的碰撞检测以及砖块状态的控制;游 戏中各关卡的基本设定;游戏中对按键状态的处理。 3菜单类游戏中菜单事件的处理。 4GameOgre 类游戏中怪物的类。 5GamePlayer 类玩家控制的精灵类。 6GameRMS 类用于实现分数排行榜。 7PlayMusic 类用于实现音乐的播放。 8MySet 类声音大小的设置。 4.24.2 程序的类结构程序的类结构 程序一共有 8 个主要类,其中菜单类负责各个屏幕的切换。程序的类结构 如图 3 所示: 图 3 类结构 4.34.3 游戏的流程图游戏的流程图 进入游戏菜单。初始情况下,游戏菜单有 5 个选项,它们分别是开始游戏、 游戏说明和排行榜、设置、关于。选择开始新游戏则进入游戏,在游戏中如果 按下非游戏键则中断游戏返回菜单,此时菜单中增加了一个继续游戏的选项, PlayMusic GameOgre GameMIDlet :MIDlet Mymenu MyGameGameRMSMySet Myhelp 第 8 页 共 23 页 可以返回游戏也可以重新开始新的游戏。在菜单中选择游戏说明或者高分记录, 则进入相应的屏幕,他们都能用“后退”软键返回菜单。菜单中的退出选项用 于退出程序。游戏的流程如图 4 所示: 图 4 游戏的流程图 4.44.4 游戏的实现游戏的实现 游戏一共实现了几个类,包括用于游戏外部的、菜单类、排行榜屏幕类、 声音设置屏幕类、结束屏幕类,以及用于游戏本身的游戏画布类、声音效果类。 4.4.14.4.1 主类主类 GameMIDletGameMIDlet 的实现的实现 MIDlet 是最核心的类。MIDlet 程序有三种状态: 1暂停状态 2运行状态 3销毁状态 J2ME 程序都是从 MIDlet 类开始执行,系统在执行 MIDlet 程序时,首先构 造一个 MIDlet 类型的对象,然后使程序进入到暂停状态,按照生命周期的规 定,系统会自动调用 MIDlet 对象的 startApp 方法使程序进入到运行状态,开 始程序的执行。 菜单 新游戏 说明 排行榜 设置 关于 退出 游戏 说明 Back 排行榜 Back 游戏分数 设置 Back 关于 Back 第 9 页 共 23 页 下图是运行时显示的画布对象: 图 5 屏幕之间的切换 首先,先要创建 MIDlet 类型的对象,下面我们来看对象的构造方法: /主程序构造方法 public GameMIDlet() rs = null; RecordName = “GameRMS”; GameMenu.display = Display.getDisplay(this) ; GameMenu.midlet = this; 在这个构造器中,创建了一个 Display 对象用于显示,然后,把当前程序 的引用传给菜单类中的静态变量。 Display 类有两个最主要的作用: 1、 获得屏幕的属性。例如屏幕是否是彩色的,以及支持的颜色数量等信 息。 2、 控制屏幕的显示。例如使屏幕显示某个指定界面或者获得当前的显示 界面等。 其中,特别是第二个作用使用的更加频繁。 当程序启动的时候,则调用了程序的 startApp 方法,用来显示画面: public void startApp() 第 10 页 共 23 页 /程序开始,打开数据库,如果数据库没有数据就添加 10 笔空白数据, 最后关闭数据库 try rs = RecordStore.openRecordStore(RecordName,true); catch (Exception e) System.out.println(“创建数据库失败”); GameRMS rd = new GameRMS(“player”,0); byte tem = rd.encode(); try if(rs.getNumRecords()=0) for(int i=1;i 0) GameName in = new GameName(); GameMenu.display.setCurrent(in); in.start(); else GameMenu.current = GameMenu.MY_MENU; GameMenu.show(); 在线程中,通过 1、调用创建关卡的方法 CREAT_STAGE(); 2、判断是否按下暂停 while(ispause) 3、调用按键方法 INPUT_KEY(); 4、调用各种判断和行动的方法 PENG_ZHUANG(); 5、调用刷新画面的方法 movMing(); 6、判断是否输掉游戏 if(isEndGame) 7、判断是否赢得游戏 if(isEndGame) 来对游戏进行不断监控。 4.4.34.4.3 玩家精灵玩家精灵 GamePlayerGamePlayer 类的实现类的实现 Sprite 类是继承自 Layer 的用于存储多帧的基本可视元素。不同的 frame 可交相显示,构成动态的效果。图片可翻转、颠倒、由一个主角图片就可以方 便的得到所有方向的显示状态,相比原先只能使用 Canvas 绘图,需要将所有方 向的主角图像都绘制在 png 图像中简化了许多。Sprite 也可以从整合的图像中 读图,读图时将把大图分解为若干等宽等高的小图。每个小图按照其排列顺序 有相应的序号,在程序中调用其序号,就可以绘制出相应的图片。本程序中的 玩家、怪物都由 Sprite 继承得到。在有些情况下,控制主角的翻转,尤其是多 幅图片配合显示的过程,如果将多图的共享定位点设置在通常的左上角,将很 不容易控制,因为许多翻转都是以其他点为参考电的(比如,中心点) 。由此, 第 18 页 共 23 页 引入参考点的概念。参考点由 defineReferencePixel 函数确定未翻转图片状态 时的坐标。默认是(0,0)点,如果需要,可将参考点设置在画面边界之外。 在本程序中,由于 J2ME 中提供的 Sprite 类功能有限,所以我自己写了一 个 GamePlayer 类来继承 Sprite 类,扩充了更多的功能。 public class GamePlayer extends Sprite 在游戏中和背景的碰撞检测始终是个难点,在本程序中是这样实现的: public void isPeng(int x,int y,int Array,int N) for(int i = 0; i = x + this.getWidth() /2 System.out.println(“UP: ”+getY(); /左 if( Length * j = x + 1 if( Length * j = x + this.getWidth() 1 第 19 页 共 23 页 /左下 if( Length * j = x + 3 /右下 if( Length * j = x + this.getWidth() -3 Length * i:+Length * (i-1); 通过查看背景数组和玩家坐标,来实现和背景的碰撞检测。 4.4.54.4.5 SoundEffectsSoundEffects 类的实现类的实现 声音效果是一个游戏中必不可少的部分,没有了生动的音乐效果,游戏的 体验就会大打折扣。在我们的游戏中当然也不能没有声音。 在我们的游戏程序中的 PlayMusic 类就是游戏中的音效类。该类的主要功 能为使用 MIDP2.0 Media API 播放游戏中的声音效果:背景音乐和游戏结束的 提示音。 我们用 private Player createPlayer(String filename, String f, int i) 创建播放器。该方法中的 filename 是要播放声音文件的相对路径,f 是播 放音乐文件的格式,i 用来控制该音乐的播放次数。在播放某个声音之前我们 都需要调用 stop 方法来中止声音(如果声音未播放则该方法无效) 。游戏中的 声音我们用的 startPlayer 方法来播放。在需要播放游戏中的声音时我们就调 用该类中相应的方法。 5 5 程序设计过程中遇到的一些重要问题程序设计过程中遇到的一些重要问题 5.15.1 关于碰撞的问题关于碰撞的问题 在游戏中最先要解决的也是最重要的问题就是碰撞检测的实现以及碰撞后 表现出的效果。在弹球游戏中碰撞检测分为俩种:精灵与精灵之间的碰撞检测 以及精灵与方块图层之间的碰撞检测。 第 20 页 共 23 页 精灵与精灵之间的碰撞检测可以直接调用 Sprite 类中的 collidesWith() 方法或者自己重新 Sprite 类中的 collidesWith()方法并调用来进行碰撞检测。 在本游戏程序中我们使用的是后者。这点表现效果还是很不错的。 再者就是精灵与图层之间的碰撞检测即主角与砖块之间的碰撞检测。我们 精灵中重写的 collidesWith()方法来检测它们之间的碰撞检测,这个时

温馨提示

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

评论

0/150

提交评论