毕业设计基于JME的连连看游戏开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言
在如今3G时代,手机游戏、移动多媒体无线增值服务,已会成为一个热点。
我国主要的移动运营商正在积极努力致力于发展手机游戏业务。
在中国,手机游戏仍处
于探索时期,其发展仍然受很多因素的制约。
面对广阔的市场和无限的潜在客户的基础上,如何真正让手机游戏在正确的轨道上发展和运作是电信运营商和游戏开发商急需解决的问题。
从用户角度看,手机游戏因其随时随地便于携带的基本特征备受用户关注。
因此用户无论在户外或车里,只要是空闲时间,都可以成为手机游戏参与者。
由于游戏节奏很快,不会占用用户大量的时间,游戏情节进度可以暂停等效果,给用户提供方便,并降低了游戏难度的阈值,提高用户的游戏的兴致度及可玩值,提供更适合的人在旅游时的休闲、娱乐功能。
从开发的角度上来看,成熟的手机游戏产品应该有以下几个方面:一个是能够适应庞大的用户群,即可以在高峰时间内集中加载游戏的信息;二是游戏可以适应不同的移动终端的屏幕尺寸;三是一个手机游戏的兼容性,一些智能手机的色彩和声音支持具有良好的兼容性;四是游戏中应当应用合理大小,若手机没有太大内存,用户下载和存储很难;五是游戏过程能中断性要求,结合不同的特点,可以实现手机操作系统的背景。
目前,手机网络游戏有两大发展的基本条件:一是有效的3G网络传输平台,在
3G手机网络时代的传输速率和承载能力有了很大程度的提高,互联网电话打开网页时间基本控制在3秒左右,对移动电话使用3G网络的高速数据传输的实时转播的多媒体内容丰富,打破了数据传输速度的对手机游戏开发限制;二是完美的电话终端的软硬件支持环境,手机硬件生产、开发与手机操作系统的不断成熟,为移动终端平台实现多种插件凝聚力提供依据,手机的娱乐功能越来越易于实现高质量的,有利于各种手机网络游戏需要。
手机网络游戏市场的需求将在几年呈强劲的势头。
首先,是指在2002年左右发
展迅速的PC网络游戏。
从中可以看到,中国的宽带互联网业务网络游戏和走进公众生活,占用庞大的用户群体,使中国的游戏厂商也如雨后春笋般迅速崛起一般。
同样, 3G网络在语音和数据传输上的飞跃发展,将会给手机网络游戏带来大好机会。
第二, 也可以参考日本和韩国的经验。
由于3G技术的普及比我们早,日本和韩国的手机网络游戏市场已经非常成熟和标准。
目前在韩国市场上流行的手机网络游戏,几乎所有都有美丽的画面和情节的游戏内容丰富,可以达到实际效果,最强烈的是和3G网络
完美结合,并逐步形成了“网络游戏社区”这个概念。
国内手机网络游戏的发展包含了无限的潜力,相信3G互联网的普及和成熟,国内的移动电话网络游戏开发会迅速和强有力的。
J2ME平台被认为是最杰出的手机游戏平台,它为开发者、设备制造商、网络通信公司和消费者广泛接受。
它有一些非常重要的特征对所有组织都有益。
J2ME设备是智能的。
他们可在自身上处理信息。
区别J2ME智能手机与前几代手机最重要的特征有:
1 •对用户来说,最具吸引力的特点是智能电话可以在并不连接网络的情况下玩游戏。
在今天的2-5 G下,网络在线模式是必要的。
但是由于在网络中,覆盖面积小,数据通信非常昂贵。
将数据和请求网络操作缓存到事务处理中也可显著的减少无线网络的使用并且提供应用的可靠性。
2.智能客户端可以使用不同的协议来集成后台的游戏服务器及其同位体(包括无线同位体和互联网同位体)。
3•智能客户端支持视觉冲击游戏重要的丰富的用户界面(UI)。
4 .智能客户端可以进入手机网络(如短信,彩信)或设备扩展(如GPS)的特点。
这使得游戏开发的优势,充分利用活动生活方式成为可能。
5.客户提供智能变得更为强大,也更为灵活的安全通过先进的加密和数字签名算法。
有了智能的客户端,我们可以传递情感和私人数据在互联网上,以及建立有效的网络社会。
1概述
1.1游戏的背景知识
游戏“连连看”,正如它的名字意味着找到相同链接到的东西,是网上看到一款再基本不过的小游戏,它是要找到相同的两件图案,在一定的规则的情况下,可以在相关处理。
“连连看”的发展经历了从桌面游戏,在线游戏,社交游戏三个过程。
游戏“连连看”是来自台湾的桌面小游戏的,自进入大陆以来就风靡一时,吸引许多程序员开发。
“连连看”有许多版本,其中,顾方编写“阿达连连看”凭借着其成熟的生产是在市场上很受欢迎,它也成为古方“阿达连连看”的核心产品。
并于2004年,并获得国家版权局计算机软件著作权登记证书。
随着Flash应用的普及,已经出现在互联网上在线Flash版本“连连看”。
如“水晶连连看”,“水果蔬菜连连看”等,广受欢迎的“水晶连连看”华丽的界面吸引了大批女性玩家。
2008年,随着互联网的普及和社交开放平台的崛起,“连连看”被引入到社交网络。
“连连看”与个人空间,并快速蔓延的组合,成为一个热门的社交游戏,其中包括与开发商Jo neve y 慢悠悠的开放式平台,在推出的“宠物连连看”最受欢迎。
“经调查数据显示,在所有玩连连看小游戏用户中,大专及以上学历人士占其总数的50.6%,在连连看小游戏用户中这一比例达到62.8%;收入方面,38.4%的小游
戏游戏用户收入高于3000元,而仅23.5%的小游戏用户达到这一收标准;⑴”经专家分析后认为,从用户的学历、收入以及在游戏中的构成比例来看,连连看小游戏用户的属性更高端,相较普通游戏用户其用户的消费潜力也更大,伴随着使用连连看小游
戏用户规模的快速增长,用户规模+高端属性将为连连看小游戏的媒体价值奠定良好的框架,而随着连连看小游戏产业的成熟和发展,其媒体价值将逐步被释放,未来也将有更大的开发空间。
连连看小游戏的最大的优势在于无需下载客户端,这使得这类游戏可以更为方便
地被安装在其他移动终端中,如掌机、手机。
这给一些上网受限制的用户提供了很大便利。
此外研究认为认为一旦政府逐步实施建设在一线城市中广域网的计划,随着该
网络的建成,连连看小游戏也将迎来新一轮的发展空间。
1.1.1游戏的基本规则
简单地说,玩家可以通过方向键将2个相同图案的连接起来,连接线不多于3条直线,就可以成功将相同图案消除。
第一次玩时,点击屏幕上将要相消的图案之一,该图案此时状态为“被选中” ,以白色的框框出显示;再次以左右键点击另一个图案,若该图案与被选中的图案相同,且把第一个图案到第二个图案连接起来,中间的直线不超过3条,则消掉这一对图案,否则第一个图案恢复
成未被选中状态,而第二个图案变成已选中状态。
游戏共有两种道具,其一设有提示功能,当玩家找不到相同图案时,点击键盘一按键,屏幕将会突出两个图案来提示玩家,用过一次,则道具少一次。
其二设有重排道具,当玩家找不到相同图案时,点击键盘一按键,屏幕将会把图案重新排列,将产生新的连接组合,玩家可以继续游戏。
游戏共分为12关卡,每一关过后方可进入下一关,失败后重新从第一关开始。
每一关卡都不相同,比如,第一关消除一对图片后,下方的图片将自动向上运动,这将会产生新的消除组合。
往后每一关都有图片的各式各样的运动方式,增加了游戏的
趣味性及难度。
1.1.2本游戏的概况
本游戏主要给用户提供的是游戏的娱乐功能,所以怎么提高游戏的娱乐性成为问题的关键,那么这款游戏的娱乐性主要体现在那些方面呢?
首先,该用户界面具有良好的用户界面能吸引人去玩。
界面简单明了,但是图案
设计清晰有趣,而且屏幕设计比较人性化适合老幼各年龄段的人群使用。
其次,游戏的娱乐功能,具有良好的娱乐功能是游戏具有持久魅力的基础,需要
设计游戏的不同级别以充分调动用户积极性。
再次,具有友好的提示功能,满足不同游戏级别的人的不同需要,增加必要的音
乐效果,使用户玩起来不觉得单调乏味。
本次画面设计观赏性强,并配以适当的音乐增加游戏的娱乐性。
设置不同的游戏级别(本游戏有3个级别)主要是缩短游戏时间,因为图标是随机排列的,所以通过控制产生随机数的难度显得不现实。
通过快捷键的操作可以适时做出游戏的提示功能,满足提示要求,如果用户对某次产生的图标分布效果不满意,可以对现在有的图
片资源进行有限次的重排,以满足用户的需要。
玩家使用上、下、左、右四个方向键来选择图案的位置,利用确认键来选定。
还会有一些按键代表道具,点击则可使用。
整个游戏的难点和重点在于图形组合的多变性,游戏共有12局,图案将会按照
规律运动,所排出来的组合将会产生新的连接可能。
比如方块将会上升、下降、向中间靠拢、四角发散等运动。
1.2 J2ME相关知识
1.2.1 J2ME技术特点
J2ME,即卩Java 2 Micro Edition,Sun公司定义为“高度优化的Java运行时针对环境的
J2ME广泛的消费类产品,包括寻呼机,手机,手机屏幕,数字机顶盒和汽车导航系统。
”在
1999年6月Sun公司在JavaOne开发者大会上宣布,J2ME带来较小的设备的Java语言的跨平台功能,允许移动无线设备共享应用程序。
对于J2ME, Sun 已经适应了Java平台消费电子产品纳入或基于小型计算设备。
Java的最大目标和特点,就是“一次编写,到处运行”的平台无关性。
但是,很自然的,正如Sun认识到的,"One size does' nt fit all",一套标准无法适应各种不同的需求。
因此,Java技术目前共有三套,分别针对不同的平台和应用。
Standard Edition (标准版,J2SE)主要用于创建独立运行、基于Web的Java applet 和应用程序,针对桌面端PC和工作站的个人和低端商务应用。
Enterprise Edition (企业版,J2EE)包含J2SE的所有功能,针对服务器端企业级应用,并且重点应用于利用EJB、Servlet与JSP和XML进行服务器编程。
Micro Edition (缩微版,J2ME)重点应用于无线计算机环境。
针对有限内存,显示和处理能力的设备,主要是消费电子和嵌入式设备领域(这实际正是Java语言设
计最初的目标领域)。
Java程序是以边解释边执行的方式运行的,所有的Java程序都会被编译成为二进制代码并运行在Java虚拟机上(J2EE、J2SE中的Java虚拟机简称为JVM)。
而J2ME针对的设备主要是嵌入式和消费类的设备,因为这些设备受内存和处理器的限制,所以J2ME所包含的类库也比较小一些,相对于J2SE的类库来说作了一些裁剪,虚拟机的功能也相对简单。
在J2ME中有两类虚拟机:C虚拟机(C Virtual Machine,CVM )与K虚拟机(K Virtual Machine , KVM )。
KVM 和CVM均可被看作是一种Java虚拟机,是JVM的子集,在功能上都是JVM的缩减版。
这两类虚拟机的适用范围并不相同,简单地说,CVM的功能比KVM功能更为强大,下面将会更清楚地介绍这两种虚拟机的具体适用范围。
运行在J2ME上的程序大致分为两种。
KVM 是用于J2ME平台最小的虚拟机,并且是用于CLDC配置的虚拟机。
但是J2ME应用程序并不一定非要使用KVM,J2ME技术可以使用任何虚拟机,不过至少应当有KVM这样的功能。
“J2ME在设计其规格的时候,遵循“对于各种不同的装置而造出一个单一的开发系统是没有意义的事”这个基本原则。
于是J2ME先将所有的嵌入式装置大体上
区分为两种:一种是运算功能有限、电力供应也有限的嵌入式装置(例如PDA、手机);另外一种则是运算能力相对较佳、并请在电力供应上相对比较充足的嵌入式装置;[2]”因为有这两种型态的嵌入式装置,所以Java引入了一个叫做Configuration的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在Co nn ected Limited Device Configuration (CLDC)规格之中;而另外一种装置则定义在Connected Device Configuration (CDC )规格中。
也就是说,J2ME先把所有的嵌入式装置利用Configuration的概念区隔成两种抽象的型态。
J2ME使用配置(CDC或CLDC)和简表(Profile)定制运行时环境(Java Run time Environment, Java, JRE)。
一个完整的JRE由配置和简表组成,配置决定了所使用的JVM(CVM
或KVM),而简表通过定义特定的类来为应用程序提供功能上的支持,一个简表定义了设备所提供的API集合。
对比前面简表的定义可以知道,移动信息设备简表(MIDP )是简表的一种,定义了移动信息设备的类型和提供相关的应用程序编程接口(API)集合,MIDP所定义的功能更加面向用户,而且比CLDC更咼级。
1.2.2Wireless Toolkit 的技术特点
Sun Java Wireless Toolkit是一组工具,可以用来为移动或其它无线设备创建应用程序。
其功能如下:
1 •构建和封装,是用来编译源码,预校验类文件并封装MIDIet。
2•运行和监视,其在将MIDlet实际部署到移动设备上之前,可以使用J2ME
模拟器(Emulator)在桌面计算机上对其进行运行和调试。
3. MIDlet套件签名,它包含对MIDlet进行加密签名的工具。
Sun Java Wireless Toolkit具有如下两种工具,可以在模拟环境中构建和测试J2ME 应用程序:无线工具包,是开发MIDlet的一个开发环境;模拟器(Emulator),为在PC上测试代码提供了一个有效的模拟环境。
1.2.3Eclipse技术特点
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
最初主要用来Java 语言开发,目前亦有人通过插件使其作为Python、C++、PHP等其他语言的开发工具。
Eclipse的本身只是一个框架平台,由于众多插件的支持,使得Eclipse拥有较佳的灵活性。
各个领域的开发人员可以通过开发插件,构建与eclipse环境无缝集成的工具。
Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java 本身提供的AWT和Swing窗口组件。
Eclipse的图形用户界面还使用了GUI 中间层JFace从而简化了基于SWT的应用程序的构建。
Eclipse的插件机制是轻型软件组件化架构。
在客户端平台上,Eclipse使用插件
来提供所有的额外功能,例如支持Java以外的其他语言。
已有的分离的插件已经能够支持
C/C++ (CDT )、PHP、Perl、Ruby,Pytho n、tel net和数据库开发。
插件的架构可以支持任何延伸到现有的环境,例如配置管理,而决不仅仅限于支持各种编程语
言。
Eclipse中几乎每样东西都是插件,Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。
Eclipse基本内核包括:图形API (SWT/Jface), Java 开发环境插件(JDT),插件开发环境(PDE)等。
1.2.4关于EclipseME
EclipseMe作为Eclipse 一个插件,致力于帮助开发者开发J2ME应用程序。
“EclipseMe并不为开发者提供无线设备模拟装置,而将各手机厂商的实用模拟器紧密连接到Eclipse开发环境中,为开发者提供一种无缝统一的集成开发环境。
⑷”
1.3开发工具和语言
本项目是在window XP操作系统下,使用Java语言编写,开发手机连连看游戏,采用java 环境及工具进行设计及实现,使用Wireless Toolkit圭寸装集成。
1.3.1开发工具
市场上存在多种J2ME平台,针对如此多样化的环境,各厂家相继推出了属于自己的开发工具。
面对这种情况,工具厂商提供了集成开发工具让开发人员在同一环境下,随时开发时或测试时所使用的底层开发工具。
本项目所使用的是Eclipse开发平台,开发人员可以通过开发插件来与eclipse形成无缝集成工具。
如果用Eclipse开发J2ME应用程序,到目前为止只有使用EclipseME 插件。
EclipseME作为Eclipse的一个插件,帮助开发着开发J2ME应用程序。
1.3.2开发语言
在J2ME环境开发平台下,使用Java编程语言,java良好的跨平台特性在开发中显示了强大的威力。
Java语言面向对象的优势也是的开发游戏变得非常容易。
Java引进虚拟机原理,并运行于虚拟机,实现不同平台之间的java接口,使用java编写程序能在世界大范围内共享。
Java的编程类似于C++,但舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存是由系统分配,这样就可以避免病毒通过指针入侵系统。
它提供了完全
管理器,防止程序的的非法访问。
Java致力于检查程序在编译和运行时的错误,并自动回收内存,减少了内存出错的可能性。
Java取消了C语言的结构、指针、#define语言、多重继承、goto语句、操作符、重载等不易被掌握的特效,提供垃圾收集器回收不用内存空间。
2需求分析
2.1游戏可行性分析
随着人们生活水平的不断提高,人们对精神生活水平的要求也随之提高。
游戏,不但可以放松身心,有的还可以开发智力。
她作为一种娱乐项目在不断的发展,并在我国逐渐地发展壮大。
如今市场上,已经出现了各种各样,适合不同年龄段和不同
人群的游戏。
比如:CS、极品飞车、大富翁、魔兽等一些大型游戏,再比如连连看、贪吃蛇、找茬等一些小游戏,都是现在受大众欢迎的娱乐休闲游戏。
并且,随着互
联网的发展,许多游戏不仅有单机版的,而且还有网络版的,甚至还有近两年流行
起来的网页游戏。
迄今为止,游戏产业在我国已经发展为一个庞大的产业,为许多
相关行业带来了巨大的经济效益。
2.2游戏功能需求分析
为了便于游戏者操作,游戏的界面简洁清晰,控制区和操作区分别在游戏界面的上部分和下部分。
控制区由一排按钮组成,里面包括游戏的模式选择,游戏的开始、暂停、游戏成绩分数点、游戏的帮助说明以及游戏级别设置选项等,游戏开始由函数
调用来完成游戏图片的加载,随机产生图片排列。
游戏操作区是用手机的上下左右键来控制图片的移动,用中间键作为确定键,当连续选定两个相同图片后,且两者的连线在算法允许消去的范围内,则消去这两个相同的图形。
当游戏者一时找不到可消去的相同的图片时,就可以利用控制区中的提示按钮,则会随机的产生一对可消去的图片。
当游戏中还有图片且不可消去时,则可利用控制区中重新洗牌按钮,则会把存在的图片打乱后重新组合,就可以继续游戏。
2.3游戏界面需求分析
游戏的界面分为控制区和操作区,控制区是整个游戏的控制按钮的集中区域,操作区是游戏者进行游戏的场所。
(1)控制区
控制区中有以下一些按钮:
开始游戏按钮:进入游戏开始界面,玩游戏显示分数与所用时间;退出游戏按钮:放弃本局游戏,进行游戏模式选择重新开始游戏;退出按钮:退出游戏程序;重新洗牌按钮:把游戏中的图片重新排列;暂停按钮:暂停游戏;游戏说明按钮:游戏规则的说明。
(2)操作区
操作区是玩家进行游戏的场所,游戏的规则很简单,就是用不超过两次转折的连线把两个相同的图片连起来,直到把游戏画面中的图片消完为止。
游戏采用LLKMatrix类,用来加载图片和连连看的核心算法来选择选中图案以及消除图片的算法,用GameCanvas来接收手机键盘消息来消除图案和重画画布,用TimeDown()与GameCanvas 来控制时间来计算游戏时间与判断是否能成功完成游戏通关。
2.4游戏技术可行性分析
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。
连连看系统的工作主要是在开发者和玩家之间架起一座桥梁,能相互沟通信息和处理信息。
这一
特点非常适合计算机特点,通过网络In ternet技术,发挥计算机的信息传输速度快、准确度高的优势。
计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。
2.5游戏规则性分析
每一关的图案连接方式有三种:1直连,这包括横直连和竖直连;2 •连线有一个转折;3.连线有两个转折。
本游戏一共12关,每一关中图片整体运动方向各不相同。
第一关是方块自动上升;第二关是方块向下坠落;第三关是方块左方往下,右方往上;第四关是方块向左靠拢;第五关是方块上方向左,下方向右;第六关是方块上方向上,下方向下;第七关是方块左方向左,右方向右;第八关是方块上下向中间靠拢;第九关是方块左右向中间靠拢;第十关是方块向对角靠拢;第^一关是方块向中心靠拢;第十二关是方块不进行重排。
3总体设计
3.1用户界面流程
游戏的界面清新自然,操作简单,适合各个年龄段的玩家操作
图3-1用户界面框架图
3.1.1主界面
程序运行后,首先显示游戏菜单,玩家可以选择“开始游戏”选项跳转到游戏画布,如果游戏失败,则出现提示画面,玩家确认后返回游戏菜单;如果游戏顺利通关, 则显示游戏胜利画布,玩家确认后也返回菜单。
游戏截图如图3-1所示。
3.1.2设置与关于游戏画面
游戏有3个难度,分为“简单”、“中级”、“高等”。
玩家进入难度选择菜单之后, 可以使用方向键改变当前难度,当前难度用level变量标识,并在当前难度的位置上绘制红色方框。
玩家按下确认键FIRE确认。
难度设置菜单如图的中图和右图所示。
玩家可以通过方向键改变当前难度。
游戏的操作说明和关于都是用图片来实现,当玩家选择“操作说明”或者“关于游戏”选项时,在指定位置绘制说明或关于图片。
drawHelp()和drawAbout()方法分别用来显示操作说明和关于。
是游戏的操作说明和关于界面。
3.1.3游戏画面
当玩家按下“开始游戏”软键时,则进入游戏。
如图3-2所示。
当玩家使用四个
方向键在一图案上按下“确认”软键时,则显示被选中。
画面下方一次是所赢得的金
钱数、关数、所剩时间、音量、重排道具、提示道具
3-2游戏信息显示
在游戏过程中,还添加了一些图片来表示当前情况,比如玩家输了,则显示“啊! 你挂了?” ;当玩家赢了,则显示“你赢了,真棒!”;当按下暂停键时,则显示“休息一会儿…”。
这些图片如图3-3所示。
3-3游戏图片
表3-1图片清单表
3.2游戏的算法分析
连连看的算法主要是判断两个单元格是否相连,按照连连看规则,连个单元格的内容首先必须是相同的;其次,两个单元格之间连线的这点不超过两个(连接线由水平线和垂直线组成)。
3.2.1可能的连接情况
分析一下连接的情况,可以知道,可连接线条分为3种情况:直线相连、一个折
点和两个折点,这3种情况具体到每种情况如图3-4所示。
"口戸孟UHU
图3-4可能的连接情况
通过3-4可以发现,如果有折点,每个折点必定有缺至少有一个坐标(X或者丫)和其中一个单元格是相同的,也就是说,折点必定在两个单元格所在的X方向或丫方向的直线上。
这也是连连看算法的一个出发点。
3.2.2数组表示图形矩阵
我们发现,可以将游戏中的图片矩阵看作是一个二维数组,其中的所有图片可以看做是数组中的一个具体的元素。
那么,游戏中相同的图片可以看做是数组中不同位置两个值相同的元素。
对于矩阵中的空白部分,我将其对应于数组中一个特殊的值如“ -1 ”。
空白区域是可以连线的,所以当连续的等于-1的数组元素的横向索引或纵向索引相同时,可以认为这是一条直线,如图3-5所示。