您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 俄罗斯方块手机游戏的设计与实现
1俄罗斯方块手机游戏的设计与实现摘要J2ME(Java2MicroEdition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案。随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本游戏就是针对J2ME平台,开发出能在支持java手机上运行的俄罗斯方块游戏,具有高移植性。同时它的操作简单,可玩性高,是一款老少皆宜的游戏。本论文介绍了J2ME的相关技术及本程序的开发流程和具体功能的实现。关键字JAVAJ2ME手机游戏1.绪论1.1传统手机游戏的利弊在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以下弊端:1.传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。2.传统手机访问互联网是通过WAP(WirelessApplicationProtocal),所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。但是Java技术在无线应用方面的优势非常明显:1.应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空间大。2.Java技术提供了一个类库,它使的应用开发商可以创建更为直觉、丰富的用户界面。3.Java技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。1.2目前手机游戏发展状态与技术基于以上分析,Java手机将是手机的发展方向,是业界的热点。到目前为止,已经有很多手机支持java了,并且还在快速的增长。现在,J2ME已经发展2成为一种比较成熟的技术,对手机提供的最小平台更合理,更实用。特别是在以前需要厂商特有的API才能支持的功能现在已经得到了实现,同时还扩展了原来的API,增加了游戏开发方面的API,使游戏开发更容易,推动有手机游戏的发展,使更多的大公司转向了手机游戏的开发。3D技术的发展,3D游戏开发包API的提供,是java手机游戏开发的一种新亮点。1.3选择本游戏的意义本游戏就是运用J2ME技术,开发的一款俄罗斯方块小游戏。在以前我们的游戏机,电脑,手机上都有这个小游戏,但是他们都是基于固定设备的,就像以前的手机上也有俄罗斯方块游戏,但是那是针对特殊的手机开发上去,并固化在手机里面的。我做的这个,它可以在支持java的手机上运行,可以上传到手机,也可以从手机里删除。这使得本游戏能广泛的移植性,使用户有了更方便的选择。2.可行性分析2.1技术可行性分析本游戏是基于j2ME的,我们知道,现在J2ME手机游戏开发蓬勃发展,尤其是近几年来,各种手机厂商都开始支持它,相应的提供了很丰富的开发包,共游戏开发使用,简化了我们的开发工作。特别是MIDP2.0中针对游戏而提供的游戏开发包,给我们带来了很大的方便,本游戏就是针对这个游戏包开发的。2.2操作可行性分析本游戏操作简单,界面友好,使人不知不觉得进入游戏中。3.需求分析俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人AlexPajitnov制作的,它看似简单但却变化无穷,令人上瘾。究其历史,俄罗斯方块最早还是出现在PC机上,而我国的用户都是通过红白机了解、喜欢上它的。而发展到现在,远航游戏中心又将重新掀起这股让人沉迷的俄罗斯方块风潮,有单机作战与两人在线对战两种模式。做为本游戏,由于是第一次做手机游戏,没有完成复杂的网络在线对战模式,3仅仅完成了最基本的单机模式。与我们常玩的俄罗斯方块游戏一样,首先,选择开始,有下坠物开始下落,同是在傍边显示出下一个下坠物,可以用游戏键控制下坠物的左右移动、翻转。当一行堆满时就消去,并给出玩家相应的得分并显示。根据这个分析,知道要完成这个游戏,必须有下坠物对象,那样才能进行游戏;同时,就必须要有一个游戏地图,让下坠物对象显示在地图上;这样一来,不管是地图,还是下坠物都要在屏幕上显示,就需要一个画布,用来显示。根据上面的一系列分析知道,要完成本游戏就必须有三个类,画布类,地图类和下坠物类。必须在这三个类中完成以上的功能才能完成。4.开发技术4.1java语言的特点本游戏应用java语言完成的,java语言的特点如下:1.平台无关性Java引进虚拟机原理,并运行于虚拟机,实现不同平台之间的Java接口。Java的数据类型与机器无关。2.安全性Java的编程类似C++,但舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。它提供了安全管理器,防止程序的非法访问。3.面向对象Java吸收了C++面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反复利用。4.分布式Java建立在TCP/IP网络平台上,提供了用HTTP和FTP协议传送和接收信息的库函数,使用其相关技术可以十分方便的构建分布式应用系统。5.健壮性Java致力与检查程序在编译和运行时的错误,并自动回收内存,减少了内存出错的可能性。Java取消了C语言的结构、指针、#define语句、多重继承、goto语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间44.2Eclipse与J2MEWirelessToolKit完成本游戏应用的是eclipse与J2MEWirelessToolKit工具的组合。1.Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++、COBOL和Eiffel等编程语言的插件已经可用,或预计会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。2.WTK(WirelessToolKit)是Sun公司针对J2ME推出的用于手机和Palm等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机模拟器开发包。它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模拟器的最基本组件,是其他IDE需集成采用的必备元素。4.3开发工具操作系统:MicrosoftWindowsXP开发包:Java(TM)2StandardEdition(5.0)+SunMicro.J2MEWirelessToolKit2.2+Eclipse3.154.4JavaApplicationManager(JAM)手机中负责调配程序运行资源的管理后台是JavaApplicationManager(JAM)。它所使用的传输媒体可以是红外线、网络、以及其他可用来传输的媒体。JavaApplicationManager(JAM)会从网络上下载代表该ApplicationSuite的JAR档,接着在手机上安裝此MIDletSuite,然后在手机开始执行该应用程序。4.5J2ME体系结构J2ME用于为信息家电市场提供应用服务,这些信息家电包括呼叫器、移动电话、像Palm这样的个人数字助手(PDA)、电视机顶盒、POS终端以及其他的消费电子设备、而且每一种加点设备又有不同的特性和界面。为了满足消费者和嵌入式市场不断发展和多样化的需求,J2ME体系结构采用摸快化、可扩展的设计,这种设计是通过一个3层软件模型来实现的,该模型构建于本地操作系统之上。J2ME的3层体系结构依照各种设备的资源特性,将J2ME技术架构分为简表(Profiles)、配置(Configuration)和JavaVirtualMachine(JVM)3层,然后在进一步细分,这使J2ME能够在每一类设备的限制下工作,而同时提供最低限度的java语言功能性,如图:图4.5-1J2ME的体系结构1.Java虚拟机(JVM)层:这一层四针对设备本地操作系统定制的java虚拟机的实现,支持特定的J2ME配置,就像使用所有java技术一样,J2ME的核心ApplicationOptionalPackagesProfilesConfigurationsJavaVirtualMachinesHostOperatingSystem6也在一种虚拟机中。2.配置(Configuration)层:面对的是大量各种不同的小型嵌入式设备,它们在外观和功能上均各不相同。J2ME将这些设备进行分类,将一些共同性提取出来形成适合于某个范围中设备可用的规范,称为“配置”。3.简表(Profiles)层:简表层定义了特定系列设备上可用的应用程序编程接口(API)的最小集。简表在一个特定的配置上面实现。应用程序是针对特定的简表编写的,因此可以移植到支持该简表的任何设备上。另外,一个设备可以同时支持多个简表。而我们看到最多的就是这一层。4.6MIDlet开发流程编写MIDlet程序到能够在物理机器上或是仿真器上运行需要七个步骤:具体如下:1.编写程序原代码2.编译3.预先审核(Preverify)4.编写描述文件5.合成jar文件6.测试与调试7.将程序下载到物理机器上运行,或使用仿真器来运行具体的开发流程图如下:编写程序源代码(.java)ByteCode(.class)通过预先审核的ByteCode(.class)JAR文件(.jar)+描述文件(.jad)描述文件(jad)+类文件(.class)开始编译预先审核利用仿真器调试利用仿真器调试编写描述文件合成单一文件下载到物理机器运行利用仿真器调试7图4.6-1MIDlet开发流程4.7本游戏涉及的数据结构游戏区域游戏区域为手机或者PDA屏幕的一部分,该区域为正方形,边长一定能被16整除(因为俄罗斯游戏区域刚好为16个小砖块长,16个小砖块宽的方形)。无论在水平方向还是垂直方向,该区域都要处于屏幕的居中位置。游戏区域在水平方向上分为2部分,一部分为12个小砖块宽,用来显示游戏容器,另一部分为4个小砖块宽,用来显示下一个下坠物和分数。小砖块小砖块是下坠物和游戏容器的组成部分。表现为一个正方形,边长为游戏区域边长的1/16。每个小砖块在绘制的时候,4边会留出1个象素宽,绘制成白色或者灰色,这样砖块之间才有间隙。每种小砖块也有id,分别为1到8。我们可以用一个颜色数组(程序里叫BRICK_COLORS)存储这8种颜色。若某种小砖块的id为3,那么该小砖的颜色为BRICK_COLORS[3-1].下坠物下坠物本质上为16个小砖块组成的正方形。下坠物一共有7种,比如有田字形的,L字形的等等。每种下坠物一共有4种旋转变化。每种下坠物都有一个id,分别为1到7。因为对于一种下坠物来说,其颜色是固定的。我们同样可以用该种颜色在BRI
本文标题:俄罗斯方块手机游戏的设计与实现
链接地址:https://www.777doc.com/doc-3365339 .html