收藏 分享(赏)

手机游戏(堡垒)的设计与开发.doc

上传人:wo7103235 文档编号:6152753 上传时间:2019-03-30 格式:DOC 页数:26 大小:433KB
下载 相关 举报
手机游戏(堡垒)的设计与开发.doc_第1页
第1页 / 共26页
手机游戏(堡垒)的设计与开发.doc_第2页
第2页 / 共26页
手机游戏(堡垒)的设计与开发.doc_第3页
第3页 / 共26页
手机游戏(堡垒)的设计与开发.doc_第4页
第4页 / 共26页
手机游戏(堡垒)的设计与开发.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、手机游戏(堡垒)的设计与开发摘 要随着手机业务的迅速发展,手机游戏逐渐成为移动增值服务的兴奋点。本毕业设计就着眼于 J2ME 技术的应用,设计与开发一款探险类手机游戏(堡垒)。该堡垒游戏是基于 J2ME 开发的手机 RPG 游戏,采用 midp2.0 技术实现了菜单、地图、主角动作及怪物动作和 AI 等,主要通过精灵间的碰撞检测来触动事件发生。游戏的主流程是玩家利用手机键盘操作主角在堡垒中拾取道具破解迷宫,并且随着关数的增加,游戏的难度也逐渐增加。另外,游戏中还包括了排行榜,声音设置,帮助等各种附加功能。其中充满了趣味性和刺激性,是适合各年龄段的益智冒险类游戏。本论文介绍了 J2ME 的相关技

2、术及该堡垒游戏程序的结构分析和具体功能的实现。关键词:J2ME; 手机游戏; 堡垒The Design and Development of a Handset Game (Castle)AbstractWith 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 an

3、d 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 soun

4、d 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

5、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 引 言 12 手机游戏的现状和 J2ME 的概况 12.1 软件现状 .12.2 J2

6、ME 概况 .22.2.1 J2ME 的由来 .22.2.2 J2ME 的 3 层体系结构及 MIDP 简介 .22.2.3 Configuration 和 Profiles.32.3 J2ME 现状和前景 .42.4 手机游戏业务 53 开发环境介绍 .53.1 开发环境 .53.2 关于 SONYERICSSON WIRELESS TOOL KIT54 手机游戏(堡垒)的开发 54.1 游戏的的思路、构想 54.1.1 游戏想法的产生 54.1.2 对游戏设计的初步认识 64.1.3 模块成型阶段 64.2 程序的类结构 74.3 游戏的流程图 74.4 游戏的实现 84.4.1 主类 G

7、ameMIDlet 的实现 84.4.2 游戏画布 MyGame 类的实现 .134.4.3 玩家精灵 GamePlayer 类的实现 174.4.5 SoundEffects 类的实现 .195 程序设计过程中遇到的一些重要问题 .195.1 关于碰撞的问题 195.2 关于游戏画面的显示问题 20结 论 .20参考文献 .20致 谢 .22声 明 .23第 1 页 共 23 页1 引 言Java 语言是美国 Sun Microsystem 的 James Gosling、Pratrick Naughton及 Mike Sheridan 等人于 1991 年精心设计出来的计算机编程语言,其构

8、想在于实现使用同一种编程语言所写出来的程序可以在不同的平台上运作。这种架构对于消费性电子产品而言是具有革命性的,因为在消费性电子产品中的处理器及操作系统各不相同,要在这些平台上开发程序必须要了解各个平台的特性,以及其提供的 API 使用方式,分别开发不同的版本才能执行,影响应用程序的普及性。近几年,由于微处理器性能的大幅提升,加上无线通讯技术的突破,手持式移动设备开始受到大众的青睐。短短几年内,手机已经升级了几代产品,普及率逐年攀升,生产效率不断上升,产品价格比个人电脑的摩尔定律有更惊人的下调,以至手机是大多是城市居民不可缺少的一件随身设备。继短信、彩信等服务之后,中国移动提供基于 Java

9、的百宝箱业务,应用产品遍及商务应用、信息获取、英汉互译、游戏娱乐等多媒体领域。为了适应移动数据的发展,推动无线电子商务等业务的发展,J2ME(Java 2 Micro Edition)既用于嵌入式系统的 Java 被引入无线领域。J2ME 的出现实际上是 Java 技术的回归。作为 Java2 平台的一部分,J2ME 与 J2SE、J2EE 一起,为无线应用的客户端和服务器端建立了完整的开发、部署环境。随着 J2ME 的应用,它为移动互联引入了一种新的模型,既允许手机可以从互联网上下载各种应用程序,并在手机创造可执行环境离线运行这些程序。由于定义了可执行下载的标准,并在手机上创立了可执行环境和

10、程序开发语言,由此,在移动通信业第一次为软件开发商创造了巨大的商业机会,手机用户在得到丰富应用体验的同时,也大大提高了运营商的网络流量。2 手机游戏的现状和 J2ME 的概况2.1 软件现状在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端:1. 传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。2. 传统手机访问互联网是通过 WAP(Wireless Application Protocal),所有网络资源必须接通网络才能在线访

11、问,非常耗时、费用亦很高。而 Java 技术在无线应用方面的优势非常明显:1. 应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空大。第 2 页 共 23 页2. Java 技术提供了一个类库,它使的应用开发商可以创建更为直觉、丰富的用户界面(GUI);3.Java 技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。2.2 J2ME 概况2.2.1 J2ME 的由来Java 的最大目标和特点,就是“一次编写,到处运行”的平台无关性。但是,一套标准无法适应各种不同的需求。因此,Java 技术目前共有三套,分别针对不同的平台和

12、应用。Standard Edition(J2SE,标准版):针对桌面端 PC 和工作站的个人和低端商务应用。 Enterprise Edition(J2EE,企业版):针对服务器端企业级应用,支持Servlets, JSP 和 XML 等等。Micro Edition(J2ME,袖珍版):针对有限内存,显示和处理能力的设备,主要是消费电子和嵌入式设备领域(这实际正是 Java 语言设计最初的目标领域)。图 1 java 结构在消费电子和嵌入式设备领域,内存从几百 K 到几十 M,从没有屏幕 Web-TV,CPU 从低功耗的嵌入式处理器到 206MHz 的 RISC 处理器,硬件条件的差异是相当

13、大的。这就使得 J2ME 的标准需要有不同的层次和类别来适应这个复杂的领域,因此相比之下 J2ME 就比 J2SE 和 J2EE 的标准要复杂得多。因此,清楚的理解 J2ME 的体系结构的划分才能更好的理解和掌握 J2ME。2.2.2 J2ME 的 3 层体系结构及 MIDP 简介J2ME 的 3 层体系结构依照各种设备的资源特性,将 J2ME 技术构架分为简第 3 页 共 23 页表(Profile) 、配置(Configuration)和 Java Virtual Machine(JVM)3 层,然后再进一步细分,这使 J2ME 能够在每一类设备的限制下工作,而同时提供最低限度的 Java

14、 语言功能性。关于 J2ME 的体系结构,可以这样来进行总结:Configuration 的分类是根据计算能力的不同来划分的,同类设备的计算能力相近。Configuration 是一个规范,定义了这类设备的共同 Java 平台,定义与设备无关的 Java 虚拟机和核心库,是平台相容性的基础。Profile 的分类是根据设备功能划分的,同类功能的设备其他各种硬件条件和需求也相近。Profile 是一组 API,在某Configuration 的基础上扩展了针对设备特定功能的 API,使得标准能够完全适应特殊的设备,彻底发挥设备的功能。J2ME 体系的一般结构是:由 Configuration 定

15、义的 Java 虚拟机运行于设备的宿主操作系统之上,构成整个平台的基础。Configuration 提供了基本的语言特性,Profile 提供针对设备的特殊功能 API 和扩展类库。应用程序的运行环境需要一个 Configuration 和至少一个 Profile,多个 Profile 可以共存,也可以叠加。MIDP(Mobile Information Device Profile)定义了针对移动信息处理设备(主要指智能手机和一部分具有无线通信功能的 PDA)的图形界面,输入和时间处理,持久性存储,无线电话网络连接之上的一些消息处理(例如短消息) ,安全等等 API,并且考虑到了移动信息设备

16、的屏幕和内存限制。类似于 J2SE 中的 Applet 框架,MIDP 提供了基于 javax.microedition.midlet 包的 MIDlet 应用程序框架。因为 MIDP 提出的比较早,目前重要的智能手机和 PDA 操作系统上都已有了相应的实现,而且应用的也比较广泛。2.2.3 Configuration 和 Profiles针对消费电子和嵌入式设备领域丰富多样的设备和彼此相差极大的计算能力及各种硬件条件,J2ME 首先根据最基本的一些特征把它们划分为两类。具备间断网络通讯能力的个人移动信息设备:如手机,双向呼机,PDA(Personal Digital Assistant,个人

17、数字助理,也称掌上电脑)等等。 有固定的不间断网络连接的共享连接信息设备:如置顶盒(set-top boxes) ,Web-TV,支持 Internet 的有屏幕电话,汽车娱乐导航系统等等。 Sun 对 J2ME 有一个很好的概括:J2ME 技术有两个设计中心手持的设备,和可以插到墙上插座的设备。第一类设备往往是个人化的,移动的,使用电池,体积和功耗都有限制,因此功能和计算能力有限。第二类设备一般是固定的,因此体积没有太大限制。由于固定,可以有持续电源供应,因此功耗没第 4 页 共 23 页有太大问题,计算能力相对充裕。计算能力是这两类设备的主要区别,对其上可能的应用和环境显然有着本质影响,不

18、同类别的设备不可能采用同样的 Java 平台,必须分别定义。针对这两大类设备的平台规范就是 Configuration。第一类设备的 Configuration 称为 CLDC(Connected, Limited Device Configuration) ,第二类称为CDC(Connected Device Configuration) 。属于同一类的设备计算能力是相似的,但是其他功能和条件还有非常大的区别。作为 Java 平台必须保证相容性,这就必须舍弃所有的设备特殊性。因此,Configuration 就是支持一组通用设备的最小 Java 平台,作为这些设备的最小公分母来保证不同设备间

19、的平台相容性。这里的 Java 平台主要是指 Java 虚拟机(JVM)和核心库。在 Configuration 中舍弃了设备的特殊性来保证 Java 平台的相容性,但是仅仅有 Configuration 显然是不够的,特殊的具体设备其独有的功能和硬件条件都没有得到支持。为此,在 Configuration 的基础上,根据设备具体功能再进行一次划分,比如智能手机,PDA 等等。功能的划分也就是其他硬件条件的划分,比如屏幕大小,内存,计算能力,电力供应等等都是从属于功能的,因此同功能的设备的硬件条件都是非常相似的。Profile(译为简表或者简档)就是针对每一类功能设备的特殊性定义的与设备特性相

20、关的 API,建筑于Configuration 之上,作为 Configuration 的扩展和补充。例如 MIDP(Mobile Information Device Profile,移动信息设备 Profile)就定义了关于移动信息设备(主要指智能手机和一部分具有无线通信功能的 PDA)的图形界面,输入和时间处理,持久性存储,短消息等等的 API,并且考虑到了移动信息设备的屏幕和内存限制。而正在制定中的 PDA Profile 则定义了针对 PDA 的 API,其屏幕,内存条件都要大于 MIDP,但是网络方面的要求则显然和手机有所不同。如下图所示,同属于 Configuration 的设备

21、根据功能不同由不同的 Profile 来支持,Profile 体现设备的特殊性,但是都建筑在一个共同的基础Configuration 平台之上。2.3 J2ME 现状和前景J2ME 已经广泛的应用在了很多的移动设备上,很多的移动设备都实现 MIDP的参考实现,但不同的移动设备还是有一些不同的地方,比如应用与手机上的Profile 就不适合在 PDA 的 Profile。有一些系统,比如 Symbian 实现了 CLDC和 MIDP,作为智能手机的操作系统,是理想的 MIDP 应用平台。其他的系统,如在 Compaq 的 iPaq 上已经实现了 CDC,IBM 的 WebSphere Micro

22、 Environment在 Pocket PC 上实现了 CLDC,CDC 和 MIDP。可见,在硬件条件较好的 PDA 上都第 5 页 共 23 页可以实现 CDC 的标准。由于这些主要操作系统平台都是开放的,基本可以相信,主要的移动信息设备操作系统都将一直提供 J2ME 的支持,但是具体支持哪个标准则并不一定死板地按照 CLDC 和 CDC 的最初定义,和设备的硬件条件和厂商的选择有关,或者可能同时实现多个标准。所以说 J2ME 的还是在快速的发展的。2.4 手机游戏业务 手机游戏是移动多媒体时代最有价值的应用。这是因为,游戏是多媒体应用中集大成的业务,图像、音乐、互动都能在游戏中实现,能

23、充分满足用户各方面的需求。虽然目前手机游戏还无法与 PC 游戏相比,其显示功能和键盘输入、声音处理能力也形成一定制约。但是随时随地可操作可联网的特性大大拓展了人们娱乐休闲的时间和空间,以游戏功能为主的手机终端在市场上渐被认可,多媒体功能正向手机的标配功能演进,制约手机游戏发展的技术瓶颈将被打破。当前的手机游戏产业尽管仍然存在很多制约其发展的瓶颈,但手机游戏已显示出非比寻常的发展速度,其市场潜力十分巨大,将成为移动增值服务市场新的增长点。3 开发环境介绍 3.1 开发环境操作系统:Microsoft Windows XP程序语言:Java 2开发平台:Java 2 Micro Edition开发

24、工具: Wireless Tool Kit 2.1+ UltraEdit-32_12.00a+1_SC3.2 关于 SonyEricsson Wireless Tool KitSonyEricsson WTK(Wireless Tool Kit)是 SonyEricsson 公司针对 J2ME 推出的用于手机和 Palm 等移动设备的开发包,是手机厂商的专用开发包。它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模拟器的最基本组件,是其他 IDE 需集成采用的必备元素。当前的最新 Release 的版本

25、为 J2ME WTK2.2。4 手机游戏(堡垒)的开发4.1 游戏的的思路、构想4.1.1 游戏想法的产生相信大家一定都在 8 位机机上玩过冒险岛这款游戏,非常有趣味性。游戏中玩家通过不断的闯关,来解救公主。在每个关都很很多的怪物阻挡着你,所以需要运用各种机关或者秘籍来杀死它们。杀死他们的同时还可以获第 6 页 共 23 页得各种奖励,加生命,加血等,增加了游戏的趣味性。如图 2 所示:图 2 游戏截图这款冒险岛游戏的实现相对于其他 RPG 或者网络版手机游戏稍简单一些,适合初学者作为练习,所以我决定编写一款类似的手机游戏。由于之前对手机游戏的编程知识以及游戏的设计只有初步的了解,因此,我们在

26、游戏的构架和思路上经历了几个阶段。4.1.2 对游戏设计的初步认识刚开始我们只对 J2ME 有初步的了解。这时我们只是模仿之前在 PC 上看到的游戏,用语言把游戏的实现感性的描述为几大部分:游戏界面系统:包括游戏开始界面;游戏开局界面;游戏运行界面;游戏结束界面。游戏元素:菜单类;画布类;人物类;排行榜类。4.1.3 模块成型阶段在进一步熟悉了 J2ME 知识后,对框架做出了一些修改,逐步把游戏的基本功能确定。游戏依次进入加载界面;主菜单;游戏运行界面;游戏结束界面。具体实现的功能为: 1主菜单,有如下选项:(1)开始游戏进入游戏界面。(2)声音设置声音的有无选项。(3)帮助介绍游戏的玩法。(

27、4)排行榜玩家所得分数的排行榜。(5)关于用来显示说明信息以及背景图片。第 7 页 共 23 页2游戏运行界面,包括:游戏界面;目前游戏得分;游戏关数;生命次数;3游戏结束界面:游戏结束后,显示一行说明信息,然后退回到菜单。游戏的主要模块为:1游戏主 MIDlet(GameMIDlet)对游戏生命周期的判断;对画布类的调用;管理游戏程序中各个屏幕之间的转换。2游戏画布(MyGame)对游戏所用变量,常量的设定;游戏的初始化;游戏中精灵运动轨迹的控制;精灵与砖块的碰撞检测以及砖块状态的控制;游戏中各关卡的基本设定;游戏中对按键状态的处理。3菜单类游戏中菜单事件的处理。4GameOgre 类游戏中

28、怪物的类。5GamePlayer 类玩家控制的精灵类。6GameRMS 类用于实现分数排行榜。7PlayMusic 类用于实现音乐的播放。8MySet 类声音大小的设置。4.2 程序的类结构程序一共有 8 个主要类,其中菜单类负责各个屏幕的切换。程序的类结构如图 3 所示:图 3 类结构4.3 游戏的流程图进入游戏菜单。初始情况下,游戏菜单有 5 个选项,它们分别是开始游戏、游戏说明和排行榜、设置、关于。选择开始新游戏则进入游戏,在游戏中如果按下非游戏键则中断游戏返回菜单,此时菜单中增加了一个继续游戏的选项,PlayMusicGameOgreGameMIDlet:MIDlet MymenuMy

29、Game GameRMS MySet Myhelp第 8 页 共 23 页可以返回游戏也可以重新开始新的游戏。在菜单中选择游戏说明或者高分记录,则进入相应的屏幕,他们都能用“后退”软键返回菜单。菜单中的退出选项用于退出程序。游戏的流程如图 4 所示:图 4 游戏的流程图4.4 游戏的实现游戏一共实现了几个类,包括用于游戏外部的、菜单类、排行榜屏幕类、声音设置屏幕类、结束屏幕类,以及用于游戏本身的游戏画布类、声音效果类。4.4.1 主类 GameMIDlet 的实现MIDlet 是最核心的类。MIDlet 程序有三种状态:1暂停状态2运行状态3销毁状态J2ME 程序都是从 MIDlet 类开始执

30、行,系统在执行 MIDlet 程序时,首先构造一个 MIDlet 类型的对象,然后使程序进入到暂停状态,按照生命周期的规定,系统会自动调用 MIDlet 对象的 startApp 方法使程序进入到运行状态,开始程序的执行。菜单新游戏说明排行榜设置关于退出游戏说明Back排行榜Back游戏分数设置Back关于Back第 9 页 共 23 页下图是运行时显示的画布对象:图 5 屏幕之间的切换首先,先要创建 MIDlet 类型的对象,下面我们来看对象的构造方法:/主程序构造方法public GameMIDlet()rs = null;RecordName = “GameRMS”;GameMenu.d

31、isplay = Display.getDisplay(this) ;GameMenu.midlet = this;在这个构造器中,创建了一个 Display 对象用于显示,然后,把当前程序的引用传给菜单类中的静态变量。Display 类有两个最主要的作用:1、 获得屏幕的属性。例如屏幕是否是彩色的,以及支持的颜色数量等信息。2、 控制屏幕的显示。例如使屏幕显示某个指定界面或者获得当前的显示界面等。其中,特别是第二个作用使用的更加频繁。当程序启动的时候,则调用了程序的 startApp 方法,用来显示画面:public void startApp()第 10 页 共 23 页/程序开始,打开数

32、据库,如果数据库没有数据就添加 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

33、);in.start();elseGameMenu.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.3 玩家精灵 GamePlayer 类的实现Sprite 类是继承自 La

34、yer 的用于存储多帧的基本可视元素。不同的 frame可交相显示,构成动态的效果。图片可翻转、颠倒、由一个主角图片就可以方便的得到所有方向的显示状态,相比原先只能使用 Canvas 绘图,需要将所有方向的主角图像都绘制在 png 图像中简化了许多。Sprite 也可以从整合的图像中读图,读图时将把大图分解为若干等宽等高的小图。每个小图按照其排列顺序有相应的序号,在程序中调用其序号,就可以绘制出相应的图片。本程序中的玩家、怪物都由 Sprite 继承得到。在有些情况下,控制主角的翻转,尤其是多幅图片配合显示的过程,如果将多图的共享定位点设置在通常的左上角,将很不容易控制,因为许多翻转都是以其他

35、点为参考电的(比如,中心点) 。由此,第 18 页 共 23 页引入参考点的概念。参考点由 defineReferencePixel 函数确定未翻转图片状态时的坐标。默认是(0,0) 点,如果需要,可将参考点设置在画面边界之外。在本程序中,由于 J2ME 中提供的 Sprite 类功能有限,所以我自己写了一个 GamePlayer 类来继承 Sprite 类,扩充了更多的功能。public class GamePlayer extends Sprite在游戏中和背景的碰撞检测始终是个难点,在本程序中是这样实现的:public void isPeng(int x,int y,int Array,

36、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.5 SoundEffects 类

37、的实现声音效果是一个游戏中必不可少的部分,没有了生动的音乐效果,游戏的体验就会大打折扣。在我们的游戏中当然也不能没有声音。在我们的游戏程序中的 PlayMusic 类就是游戏中的音效类。该类的主要功能为使用 MIDP2.0 Media API 播放游戏中的声音效果:背景音乐和游戏结束的提示音。我们用 private Player createPlayer(String filename, String f, int i) 创建播放器。该方法中的 filename 是要播放声音文件的相对路径,f 是播放音乐文件的格式,i 用来控制该音乐的播放次数。在播放某个声音之前我们都需要调用 stop 方法

38、来中止声音(如果声音未播放则该方法无效) 。游戏中的声音我们用的 startPlayer 方法来播放。在需要播放游戏中的声音时我们就调用该类中相应的方法。5 程序设计过程中遇到的一些重要问题5.1 关于碰撞的问题在游戏中最先要解决的也是最重要的问题就是碰撞检测的实现以及碰撞后表现出的效果。在弹球游戏中碰撞检测分为俩种:精灵与精灵之间的碰撞检测以及精灵与方块图层之间的碰撞检测。第 20 页 共 23 页精灵与精灵之间的碰撞检测可以直接调用 Sprite 类中的 collidesWith()方法或者自己重新 Sprite 类中的 collidesWith()方法并调用来进行碰撞检测。在本游戏程序中

39、我们使用的是后者。这点表现效果还是很不错的。再者就是精灵与图层之间的碰撞检测即主角与砖块之间的碰撞检测。我们精灵中重写的 collidesWith()方法来检测它们之间的碰撞检测,这个时候我们就存在一个怎么样判断与小球碰撞的是哪个砖块的问题。我所采用的是通过查看背景数组和玩家坐标,来实现和背景的碰撞检测,但是效果不是很理想。到目前在我们经过的多次测试中还没有出现判断失误以及无法判断等错误。可是,效果不理想,我还将继续探索更精更有效的算法。5.2 关于游戏画面的显示问题在后期测试中发现游戏在暂停后继续游戏时,游戏画面又恢复为游戏开始的画面,而不是暂停时的游戏画面,经过多次调试后发现问题在 MyG

40、ameCanvas类。在仔细阅读了相关的资料后发现线程的创建和运行是通过调用它本身的函数 start()来调动 run()函数开始运行的,当 run ()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个线程。鉴于此,我们决定在 MyGameCanvas 类的 run()内设置一个暂停标志量 pause。 这样就实现了游戏的暂停(挂起)功能。当继续游戏后,游戏画面就是我们暂停时的画面。结 论本程序设计实现了手机上以 J2ME 为平台的堡垒游戏的开发,具有一定的可玩性和复杂性。经过了细心的调试和排错解决了绝大部分的问题。通过对“沙丘魔

41、堡”这个手机游戏的构想,设计,代码的编写和调试,我进一步学习了 J2ME 这个平台,并对手机游戏编程有了新认识。就我所做的模块来说,我对 J2ME 中的菜单、声音、画布等技术有了更进一步的认识。一个简单的菜单的背后却有着不同的写法以及一些复杂的技术。我现在已经做出的是游戏的 1.0 版本,实现了游戏的基本功能,离一个完全意义上的手机游戏还有一段的距离:1.游戏只在模拟器上运行,还没有经过真机调试;2.游戏的选项界面没有经过任何效果美化;3.能调节声音的大小及开关背景音乐。这款游戏算是休闲类的一款小游戏,如果能继续完善游戏的菜单功能,增加游戏可玩性等,那这款游戏将会是一款比较具有人气的手机游戏。

42、第 21 页 共 23 页参考文献1 胡虚怀,杨志和,李焕.J2ME 移动设备程序设计M.北京:清华大学出版社,2005。2 李振鹏,龚剑.J2ME 手机游戏开发技术详解M. 北京:清华大学出版社,2006。3 詹建飞.J2ME 开发精解M.北京:电子工业出版社,2006。4 施铮.J2ME 技术参考手册M.北京:电子工业出版社,2004。5 微型爪哇人.JAVA 手机开发M.北京:中国铁道出版社,2003。6 闻怡洋.J2ME MIDP 1.0/2.0 无线设备编程指南M.北京:北京大学出版社,2004。第 22 页 共 23 页致 谢本文是在韩斌老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!感谢韩斌老师初期给予的帮助,在韩斌老师的帮助下课题才得以很好的展开,有了一个很好的开端!在论文完成过程中,本人还得到了其他老师和许多同学的热心帮助,本人向他们表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!第 23 页 共 23 页声 明

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报