拆房子手机游戏的设计与开发毕业设计.docx
《拆房子手机游戏的设计与开发毕业设计.docx》由会员分享,可在线阅读,更多相关《拆房子手机游戏的设计与开发毕业设计.docx(49页珍藏版)》请在冰豆网上搜索。
拆房子手机游戏的设计与开发毕业设计
毕业设计说明书
拆房子手机游戏的设计与开发
学生姓名:
学号:
学院:
软件学院
专业:
通信技术
指导教师:
2010年6月
拆房子手机游戏的设计与开发
摘要
J2ME虚拟机在手机上的普及为手机游戏的发展提供了最适合的土壤,随着MIDP2.0的发布,使得手机游戏开发者可以更专注于游戏性的增强而不再是繁琐的动画处理与地图设计。
随着社会节奏的加快,平常工作的竞争强度也加大,生活的压力也跟着加重,所以休息时或下班后大家都需要个休闲的娱乐工具,来放松自己,缓解自己的压力,消除紧张的疲劳状态。
拆房子游戏是一种易趣休闲的小游戏,不仅能调节精神,还能在游戏中锻炼自己的注意力和专心程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困难时自己所具有攻克困难的信心。
本文着眼于J2ME技术在手机娱乐上的应用,开发一个基于MIDP2.0的手机游戏——拆房子,并介绍了游戏的结构分析和具体功能实现。
游戏界面和运行方式,尽力模拟手机游戏的普遍性形式,成为一个完整的手机游戏。
关键词:
J2ME,手机游戏,MIDP2.0,拆房子
TheDesignandDevelopmentofChaiFangziMobileGames
Abstract
J2MEvirtualmachineonyourphonepenetrationofthecellphonegamedevelopmentoffersthemostsuitablesoil.WithMIDP2.0releasesmakesmobilephonegamesdevelopercanconcentratemoreonthegameinsteadofstrengtheningcumbersometodealwiththeanimationmapisdesignedtoallowthedevelopmentprocessmoreconveniently.
Withthequickeningofsocialrhythm,theintensityofcompetitionofworkingusuallyisstrengthened,thepressureoflifefollowstoaggravatetoo.Soeverybodyneedsanamusementtoolofrecreationwhencomingoffdutyorhavingarest,relaxone,alleviateone’sownpressure,dispelthetensefatiguestate.ChaiFangziMobileGamesisaleisuregame,Notonlycanadjustthespirit,butalsointhegametohonetheirlevelofattentionandconcentration,itdevelopsourthinkingability.Atthesametimeyoucanequipthemselves,andchallengetothehigh-grade.Culturewearefacedwithdifficulties,overcomethedifficultieswithhisownconfidence.
ThisarticlefocusesonJ2MEtechnologyinthemobileentertainmentapplications,DevelopamobilegamebasedonMIDP2.0——ChaiFangzi,andintroducedthegametoachievestructuralanalysisandspecificfunctions.Thegameinterfaceandoperationmode,trytosimulatetheuniversalityoftheformofmobilegameshasbecomeacompletemobilegaming.
Keywords:
J2ME,mobilephonegame,MIDP2.0,ChaiFangzi
1引言
1.1研究目的和范围
1.1.1此款手机游戏的研究目的
当今社会人们的生活节奏不断的加快,在工作、学习、生活中压力日益增加。
随着科技的发展,现在手机的功能也越来越多,越来越强大。
在地铁、公交车上和火车上,我们可以看到越来越多的人低头玩着手机游戏,伴随着不断变化的表情,或皱眉或微笑。
而手机游戏也远远不是我们印象中的什么“俄罗斯方块”之类画面简陋,规则简单的游戏,进而发展到了可以和掌上游戏机媲美,具有很强的娱乐性和交互性的复杂形态了。
在这样情况下,研究一款手机游戏,可以减轻压力对人们的身心伤害,使人们在生活闲暇时光得到放松。
1.1.2此款手机游戏的研究范围
研究的主要问题就是如何以手机为载体实现移动教育,并把寓教于乐思想融入这种载体上。
研究采用J2ME技术实现游戏的流程控制、逻辑处理和记录存储等功能。
先对游戏和教育作了一番追根溯源的考察,揭示了游戏是人的天性,是人快乐的源泉,是人的内在需要。
而教育和游戏的结合是实现快乐教育的一种有效方法。
接着对电子游戏和移动教育进行了阐述,提出教育游戏就是电子游戏与移动教育的结合。
后分析了在手机移动平台上实现具有学习教育功能的寓教于乐游戏的可行性和有效性。
最后介绍了J2ME手机游戏开发技术,分析了教育手机游戏开发要点,并开发了一款休闲手机游戏——拆房子游戏。
开发过程遵循以下流程:
首先是知识点的整理和设计,对各个方面的常识按等级分类;其次是游戏的需求分析设计,即游戏方式、游戏效果、游戏规则、总体结构进行设计;然后是根据需求分析设计,对游戏开发实现,实现了关卡、分数、排行榜等模块。
最后对游戏进行应用效果测试,测试结果表明该软件实现了预期的功能,达到了实际应用的水平。
1.2实用价值与理论意义
每个人都有一部手机,走到任何地方都可以时常看到有人在玩各种手机游戏。
坐在咖啡店里,在酒店里,等人时,都可以玩手机游戏以打发时间,这甚至已经成为每个人的习惯性动作。
而随着手机智能化的进一步提升,有些手机的功能甚至让人有便携式电脑的感觉,而随之附带的游戏更是让人眼前一亮。
对于手机单机游戏,不需要太多的时间和精力,只需要拿出手机,打开游戏即可游玩。
目前已经有很多类型的游戏厂商在进行搏杀,嵌入式游戏、java游戏、Brew游戏、Uni-java游戏、mrp国产手机游戏等等,百花齐放,你争我攀,谁都不肯落后。
在这种大环境下,一些品质高的游戏势必将让所有的手机玩家感受到手机游戏的便携式和其独特的魅力,从而在一定程度上刺激了国民经济的增长。
在手机应用范围日益广阔的今天,这项研究的理论意义在于J2ME小巧、安全、可移植的优势使其具有更大的吸引力,而且随着硬件生产工艺、技术的提高,手机的芯片处理速度和存储能力将发生革命性的变化,与此同时3G技术即将走向中国这个全球最大的手机消费市场,加上J2ME技术开发者也一直在研究进一步提高J2ME运行速率的问题。
相信在不远的将来,会有越来越多的人乐于选择基于J2ME的无线应用技术,来进行无线企业应用、移动电子商务等系统的开发。
虽然目前的J2ME技术仍旧处于起步阶段,J2ME还有这样那样的缺陷,但我们还是有充分的理由可以相信:
J2ME在手机游戏设计领域将会有异常美好的前景,它必然能为我们的生活带来翻天履地的变化。
1.3理论依据和实验设备条件
以JavaME手机应用开发大全为理论依据,利用eclipse,J2ME通用开发工具J2MEWTK,电子计算机来完成这个项目。
1.4解决的问题
解决MIDLET应用程序的生命周期,MIDP用户界面编程,游戏的美工和程序实现。
2J2ME及其体系结构概述
2.1Java语言的特点
1.平台无关性
Java引进虚拟机原理,并运行于虚拟机,实现不同平台之间的Java接口。
使用Java编写的程序能在世界范围内共享。
Java的数据类型与机器无关。
2.安全性
Java的编程类似C++,但舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。
它提供了安全管理器,防止程序的非法访问。
3.面向对象
Java吸收了C++面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反复利用。
4.分布式
Java建立在TCP/IP网络平台上,提供了用HTTP和FTP协议传送和接收信息的库函数,使用其相关技术可以十分方便的构建分布式应用系统。
5.健壮性
Java致力与检查程序在编译和运行时的错误,并自动回收内存,减少了内存出错的可能性。
Java取消了C语言的结构、指针、#define语句、多重继承、goto语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间。
2.2J2ME简介
J2ME是一个专门面向小型设备应用的简易平台,这些小型设备包括移动电话、PDA、网络电话、数字电视机顶盒、自动娱乐系统、导航系统、网络交换、以及家用自动电器等。
J2ME的体系结构包括配置、虚拟机和简表3个部分,本设计是针对MIDP简表应用开发的。
J2ME(Java2MicroEdition)是Sun的Java2平台微型版,它被定义为“一种以广泛的消费性产品为目标的且高度优化的Java运行时环境。
”近年来随着各种电子设备,尤其是移动通信设备的发展J2ME对设备的智慧化、多样化,提供了革命性的解决方案。
随着手机的日益普及和对Java软件的支持,使得不同的手机可以运行同样的由Java开发的软件。
Java平台演进到Java2后,Java平台分别针对不同领域的需求被分成四个版本,亦即J2EE、J2SE、J2ME以及JavaCard。
其中J2ME定位在消费性电子产品的应用上。
这个版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。
这个版本的应用层面相当广泛,会是未来Java平台发展的重点项目。
J2ME在1999年的JavaOne开发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算机设备的开发人员。
J2ME的一个关键优点是,J2ME与所有支持Java的设备都是兼容的。
支持Java的设备就是任何运行Java虚拟机的计算机。
Motorola、Nokia等生产厂商都生产支持Java的设备。
J2ME平台是由配置(Configuration)和简表(Profile)构成的。
配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。
简表是针对一系列设备提供的开发包集合。
在J2ME中还有一个重要的概念是可选包(OptionalPackage),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了JSR82(BluetoothAPI)提供了对蓝牙的支持。
目前,J2ME中有两个最主要的配置,分别是ConnectedLimitedDevicesConfiguration(CLDC)和ConnectedDevicesConfiguration(CDC)。
作为第一个面对小型设备的Java应用开发规范,CLDC是由包括Nokia,Motorola和Siemens在内的18家全球知名公司共同协商完成的。
CLDC是J2ME核心配置中的一个,可以支持一个或多个profile。
其目标主要面向小型的、网络连接速度慢、能源有限(主要是电池供电)且资源有限的设备,如手机、PDA等。
J2ME(Java2MicroEdition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。
它的目标定位在电子消费产品与嵌入式设备上,对设备的智慧化、多样化,提供了革命性的解决方案。
在可以搭载Java的终端设备中,移动电话可以说是最为普及的,随着无线通信业的发展,Java应用程序在通信、娱乐等应用上产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的信息起着不可忽视的作用。
2.3J2ME体系结构
J2ME平台是由配置(Configuration)和简表(Profile)构成的。
配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。
简表是针对一系列设备提供的开发包集合。
在J2ME中还有一个重要的概念是可选包(OptionalPackage),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了JSR82(BluetoothAPI)提供了对蓝牙的支持。
目前,J2ME中有两个最主要的配置,分别是ConnectedLimitedDevicesConfiguration(CLDC)和ConnectedDevicesConfiguration(CDC)。
他们是根据设备的硬件性能进行区分的,例如处理器、内存容量等。
由于这个标准是在2001年的时候指定的,而现在移动终端的处理能力和内存容量发展很快,如果还按照这个标准来评判可能就不准确了。
因此我们只是列出标准,供读者参考。
本教程将主要讲解基于CLDC的J2ME平台的相关内容。
随着技术和硬件设备的不断发展,J2ME开发网将逐步推出基于CDC的J2ME平台介绍。
从上述的标准中我们不难看出CLDC主要针对那些资源非常受限的设备比如手机、PDA、双工寻呼机等。
而CDC主要面对那些家电产品,比如机顶盒、汽车导航系统等。
简表是以配置为基础的,例如MobileInformationDevicesProfile(MIDP)就是CLDC上层的重要简表。
与配置的纵向特性不同的是,简表是横向的。
下图是J2ME体系结构的框图:
图2.1J2ME体系结构框图
MIDlet应用程序的生命周期:
在MIDP中定义了一种新的应用程序模型MIDlet,它是被ApplicationManagementSoftware(AMS)管理的。
AMS负责MIDlet的安装、下载、运行和删除等操作。
在被AMS管理的同时,MIDlet可以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法notifyDestroyed()和notifyPaused()实现的
MIDlet有三个状态,分别是pause、active和destroyed。
在启动一个MIDlet的时候,应用管理软件会首先创建一个MIDlet实例并使得他处于pause状态,当startApp()方法被调用的时候MIDlet进入active状态,也就是所说的运行状态。
在active状态调用destroyApp(booleanunconditional)或者pauseApp()方法可以使得MIDlet进入destroyed或者pause状态。
值得一提的是destroyApp(booleanunconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS通知MIDlet进入destroyed状态。
在destroyed状态的MIDlet必须释放了所有的资源,并且保存了数据。
如果unconditional为false的时候,MIDlet可以在接到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。
下图说明了MIDlet状态改变情况:
图2.2MIDlet的状态
下面通过一个例子来验证MIDlet应用程序的生命周期:
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
publicclassHelloWorldextendsMIDlet{
privateDisplaydisplay;
//构造函数
publicHelloWorld(){
display=Display.getDisplay(this);
System.out.println("Constructor");
}
publicvoidstartApp(){
System.out.println("startAppiscalled.");
Formf=newForm("HelloTest");
display.setCurrent(f);
}
publicvoidpauseApp(){
System.out.println("pauseAppiscalled.");
}
publicvoiddestroyApp(booleanunconditional){
System.out.println("destroyAppiscalled.");
}
}
编译该程序后运行,控制台上就会依次输出:
ConstructorstartAppiscalled.
当我们退出该程序时,控制台就会输出:
destroyAppiscalled.
关于WirelessToolKit:
WTK(WirelessToolKit)是Sun公司针对J2ME推出的用于手机和Palm等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机仿真器开发包。
它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。
虽然它没有强大的功能和完善的调试手段,但它提供运行仿真器的最基本组件,是其他IDE需集成采用的必备元素。
当然,你可以从手机厂商下载相关的API及仿真器来进行开发。
同样,WTK也是个免费软件,可以在Sun上得到下载。
2.4移动信息设备简表概述
2.4.1MIDP概述
MIDP(MobileInformationDeviceProfile,移动信息设备简表)就是专门向移动信息设备的一类简表。
MIDP2.0规范设计的目的是定义一体系架构和相应的API,从而为第三方的移动信息设备应用的开发提供一开放的标准环境。
MIDP被设计在CLDC的基础上运行。
虽然MIDP2.0规范是在CLDC1.0所提供的功能的基础上制订的,但它仍能运行在CLDC1.1的基础上,以及以后的更新版本
2.4.2MIDP需求
a.硬件需求
要求移动信息设备的硬件必须达到以下要求:
1.显示
屏幕大小:
96X54
先是深度:
1位
像素形状(纵横比):
大约1:
1
2.输入
一种或多种输入方式:
单手键盘,双手键盘或触摸屏。
3.存储器
128KB非易失存储器用来装载MIDP的组件。
8KB非易失存储器,装载应用程序产生的静态数据。
32KB随机存储器用作Java运行时使用(例如,Java堆)。
4.网络
双向、无线、可能间歇、有线带宽的网络连接。
b.软件需求
1.用于控制底层硬件的最小内核(例如中断,异常,最小时序的处理)。
这个内核必须提供至少一个可运行的实体去运行Java虚拟机。
此内核不需支持独立的地址空间(或进程),也不需要保证任何实时功能。
2.对非易失存储器进行读和写的机制,以支持数据的持久性存储。
3.对无线网络的读写访问,以便提供MIDP中API的支持。
4.定时机制,即用来提供永久保存记录时的时间戳,同时用来支持定时器。
5.最基本显示位图能力。
6.可以从三个输入机制中捕获一个(或几个)用户输入的机制。
7.能控制应用程序生命周期的机制。
2.4.3MIDP范围
功能范围包括以下:
应用程序模型(即定义MIDP应用程序的语义和如何控制应用程序)。
用户界面支持。
网络支持。
持久化存储支持。
声音。
2D游戏。
、
通过HTTPS和安全套接字的端到端的安全性。
MIDlet签名模型提供的附加安全性。
应用程序的递送和安装。
其他类如定时器类和异常类。
MIDP范围:
一些功能被认为超出了MIDP的范围,其中包括:
1.系统级API:
需要再次强调的是,MIDPAPI的主要功能是支持开发应用程序,而不是开发系统级程序。
因此像能源管理或语言压缩等底层的系统API超出了MIDP的范围。
2.底层安全功能:
除了CLDC所提供的安全保护以外,MIDP没有提供额外的底层安全保护措施。
2.4.4MIDP2.0新特性
2002年11月,SUN公司又发布了MIDP2.0。
它对设备的内存资源和处理能力的要求较1.0要高,但MIDP2.0也为应用开发者提供了更方便、更丰富多彩的软件包,主要增加了游戏接口的实现、声音输出接口的实现、安全网络机制的实现。
MIDP2.0的这些特性将使基于移动设备Java应用具有更加广阔的前景。
根据与MIDP1.0中软件包的对照,总结MIDP2.0的新增特性如下:
用户界面扩展,例如弹出窗口,可激活的字符串和图像等。
对屏幕布局的更好控制,包括可以对Form上的Item的大小进行控制。
可以自定义FormItem,应用不再受限于MIDP1.0中的几种基本的Form,而可以自己使用Java实现新的类型。
支持简单的声音回放,MIDP2.0设备必须支持MMAPI的一个功能子集。
当然厂商也可以支持完整的MMAPI。
新引入的SpriteAPI简化了图形应用,特别适合游戏的开发。
支持HTTPS、TCP/IP和UDP,以及串口通信。
MIDlet可以被设置成可由外部事件激活,该技术被称为pusharchitecture。
所有的MIDP2.0设备必须支持使用OTA获取MIDlet套件,实际上,大部分MIDP1.0设备就支持OTA下载了,只不过此项特性并非强制性的。
支持对MIDlet进行数字签名。
此签名作为其内容的加密摘要被一起提供。
此特性提供了一个健壮的方案,使得验证MIDlet的发布者成为可能。
设备的使用者可以根据这个信息来选择是否赋予MIDlet对运行环境的更多访问权限。
2.4.5移动信息设备软件体系结构
图2.3移动信息设备软件体系结构图
2.5J2MEAPI简介
MIDP2.0相对于1.0来说,最大的变化就是新添加了用于支持游戏的API,它们被放在javax.microedition.lcdui.game包中。
游戏API包提供了一系列针对无线设备的游戏开发类。
由于无线设备仅有有限的计算能力,因此许多API的目的在于提高Java游戏的性能,并且把原来很多需要手动编写的代码如屏幕双缓冲、图像剪裁等都交给API间接调用本地代码来实现。
各厂家有相当大的自由来优化它们。
1.API使用了MIDP的低级图形类接口(Graphics,Image,等等)。
整个game包仅有5个Class:
GameCanvas
这个类是LCDUI的Canvas类的子类,为游戏提供了基本的“屏幕”功能。
除了从Canvas继承下来的方法外,这个类还提供了游戏专用的功能,如查询当前游戏键状态的能力,同步图像输出;这些功能简化了游戏开发并提高了性能。
Layer
Layer类代表