版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要J2ME虚拟机在手机上的普及为手机游戏的发展提供了最适合的土壤,随着MIDP2.0的发布,特别是其中新增的GameAPI使得手机游戏开发者可以更专注于游戏性的增强而不再是繁琐的动画处理与地图设计,让开发过程变得 更加方便迅捷,它是手机游戏发展的重要里程碑。随着社会节奏的加快,平常工作的竞争强度也加大,生活的压力也跟着 加重。所以休息时或下班后大家都需要个休闲的娱乐工具,来放松自己,缓 解自己的压力, 消除紧张的疲劳状态。 连连看游戏是一种意趣休闲的小游戏, 不仅能调节精神, 还能在游戏中锻炼我们的眼力视野, 注意力的专心的程度, 开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们
2、面对困 难时自己所具有攻克困难的信心。本文完整地描述了如何在Jbuilder 平台应用J2ME技术,特别是MIDP2.0中新增加的 GameAPI 在手机上实现连连看游戏(原型为电脑上游戏连连 看),核心在于其 GameMa类这一模块的构建。 其中涉及到的技术有 Midlet框架、游戏状态机、线程、精灵、地图、关卡、程序优化及兼容性设计等。关键词 :J2ME, Midlet 框架,连连看,地图ABSTRACTJ2ME virtual machine on your phone penetration of the cell phone game development offers the m
3、ost suitable soil, With MIDP2.0 releases, particularly with the new GameAPI makes mobile phone games developer can concentrate more on the game instead of strengthening cumbersome to deal with the animation map is designed to allow the development process more conveniently and quickly, It is a impor
4、tant milestone in the development of cell phone games.With the quickening of social rhythm, the intensity of competition of working usually is strengthened, the pressure of life follows to aggravate too. So everybody needs an amusement tool of recreation when coming off duty or having a rest, relax
5、one, alleviate ones own pressure, dispel the tense fatigue state.This paper describes the integrity of how the Jbuilder platform in J2ME technology, especially MIDP2.0 newly added GameAPI on cell phones to achieve a LLK-Game (prototype online computer game LLK-Game), the core of its game GameMapclas
6、s building. With respect to the technology Midlet framework, state game machine, thread, clever, maps, hurdles Process optimization and compatibility design. The first chapter describes the J2ME games, and the paper agreed terms; The second chapter describes the development of the game and to use th
7、e platform of the main technologies; Chapter III of the game for a simple needs analysis; Chapter 4 is a concrete realization of the game, anddescribe some of the key technology; Chapter 5 is about the process of summing up and how to finish this design.KEY WORDS :J2ME,MIDlet framework ,LLK, maps基于J
8、2ME的手机连连看游戏开发目录1引言 11.1编写目的 11.2开发背景 11.3项目开发目的 11.4项目提出意义 21.5参考文献 22总体设计 22.1需求分析 22.1.1功能需求 22.1.2开发环境需求 32.2运行环境 33开发平台及开发技术 43.1 J2ME 基础知识 43.2开发工具和环境搭配 43.2.1开发工具 43.2.2环境搭配54详细设计 54.1界面详细设计 54.2功能详细设计 84.3打包测试 145结论 141引言1.1编写目的本报告是对连连看游戏进行详细设计,是系统实现的出发点,是后续开发步骤及软件维护工作的基础,报告用于沟通用户,加深开发人员对系统的理
9、解,使得程序员能够根据本报告实现系统,本报告将成为以下各开发阶段 的参考和约束文档。1.2开发背景随着技术对游戏经验的促进,游戏市场持续增长。越来越多的人开始认为,经过了许多人共用一台计算机的大型主机时代,一人一台计算机的个人PC时代之后,下一个时代就是一人多台计算设备的普及计算时代(UbiquitousComputing, IBM 称之Pervasive Computing )。计算设备将从单一的PC扩展到各种各样的大小和功能,从家庭消费电子产品,到个人随身携带,穿着,车载的各种移动信息处理设备,多样化是这个领域的最大特点。一次编写,到处运行的平台无关性,对网络,多重设备间联网的机制(JIN
10、I )显然对这个领域是至关重要的软件条件。这个领域内的Java标准就是J2ME。1.3项目开发目的本设计开发一个基于J2ME的手机连连看游戏。主要包括以下模块:游戏引擎模块、游戏界面模块。要求学生按照软件工程的方法,从需求分析入手,到概要设计、详细设计,然后编码、测试,最终完成。能够培养学生理解并掌握软件开发基本流程和方法,掌握基于J2ME的基本开发技术、 游戏开发技术。第1页共14页基于J2ME的手机连连看游戏开发1.4项目提出意义随着社会节奏的加快,平常工作的竞争强度也加大,生活的压力也跟着加重。所以休息时或下班后大家都需要个休闲的娱乐工具,来放松自己,缓解自己的压力,消除紧张的疲劳状态。
11、 连连看游戏是一种意趣休闲的小游戏, 不仅能调节精神, 还能在游戏中锻炼我们的眼力视野,注意力的专心的程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困 难时自己所具有攻克困难的信心。1.5参考文献1 詹建飞J2ME开发精解.北京.电子工业出版社.2006.12 张小玮J2ME无线平台应用开发.北京:.清华大学出版社.20043 张小玮著.J2ME无线平台应用开发.清华大学出版社 2003年11月2总体设计2.1需求分析2.1.1功能需求为了便于游戏者操作,游戏的界面简洁明了,控制区和操作区分别在游 戏界面的上部分和下部分,这样游戏者不至于在进行游戏时搞混。控制区由 一排
12、按钮组成,里面包括游戏的模式选择,游戏的开始、暂停,游戏成绩分 数点,游戏的帮助主题以及游戏的设置选项。游戏开始由函数调用来完成游 戏图片的加载,随机产生图片排列。游戏操作区是用手机的上下左右键来控 制图片的移动,用中间键作为选中键,当连续选定两个相同图片后,且两者 的连线在算法允许消去的范围内,则消去这两个相同的图形。当游戏者一时 找不到可消去的相同的图片时,就可以利用控制区中的提示按钮,贝U会随机 的产生一对可消去的图片。当游戏中还有图片且不可消去时,则可利用控制 第2页共14页区中重新洗牌按钮,则会把存在的图片打乱后重新组合,就可以继续游戏。图3-2数据流图胡吨琼制.比油7图3-3数据流
13、图2.1.2开发环境需求为了游戏者安装的方便以及游戏的兼容性,考虑到游戏者大多数用的都是 Windows操作系统,游戏在Windows操作系统下开发,把游戏的兼容性问题降低到最低限度。游戏是Eclipse的环境下开发的。2.2运行环境设备微机一台,CPU : Intel奔腾4以上版本;内存:512MB以上;硬盘:20G ;打印机:1台。(2)支持软件适用操作系统:Windows XP以上 Windows操作系统。运行软件:jdk1.60 + Eclipse3.2+wireless 2.5.2。第3页共14页基于J2ME的手机连连看游戏开发3开发平台及开发技术3.1 J2ME基础知识J2ME,即
14、Java 2 Micro Edition,是SUN公司推出的在移动设备上运行 的微型版Java平台,常见的移动设备有手机,PDA,电子词典,以及各式各样的信息终端如机顶盒等等。最重要的移动终端当然是手机了,因此,我们 主要讨论手机相关的J2ME规范。J2ME是Sun公司为嵌入式开发所定义的一个框架,一系列标准的规范 所组成。所以J2ME是一个协议簇,而不是单一的规范。3.2开发工具和环境搭配3.2.1开发工具高级的MIDP应用程序开发工具能够帮助开发人员简化J2ME开发过程,包括Sun提供的官方开发工具 WTK和手机厂商提供的专属SDK。(1) J2ME Wireless Toolkit :W
15、TK 的全称是 Sun J2ME Wireless Toolkit Sun的无线开发工具 包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。该工具箱包含了完整的生成工具、实用程序以及设备仿真器。(2) J2ME集成开发工具 EclipseEclipse是一个开发源代码的、基于java的可扩展开发平台。Eclipse本身只是一个框架和一组响应的服务,并不能够开发什么程序。在Eclipse中几乎每样东西都是插件,实际上正是运行在 Eclipse平台上的种种插件提供我们 开发程序的各种功能。同时各个领域的开发人员通过开发插件,可以构建与 Eclipse环境无缝集成的工具。Eclips
16、eME作为Eclipse 一个插件,致力于帮助开发者开发J2ME应用程序。EclipseME并不为开发者提供无线设备模拟器,而将各手机厂商的实用第4页共14页基于J2ME的手机连连看游戏开发模拟器紧密连接到 发环境。Eclipse开发环境中,为开发者提供一种无缝统一的集成开322环境搭配WTK :由于WTK自身并没有附带 Java的运行环境JDK,所以,在 WTK 安装之前你需要安装自己的JDK安装JDK 142安装 J2ME Wireless Toolkit (J2ME WTK) 2.5.2参考文章:搭建开发平台 WTKEclipse :除了 Eclipse与EclipseME 之外,你还需
17、要 java运行环境和一些手机模拟器来完成整个搭建工作安装JDK 142安装 Eclipse SDK 3.1安装 EclipseME 1.0参考文章:搭建开发平台 Eclipse4详细设计4.1界面详细设计游戏的界面分为控制区和操作区,控制区是整个游戏的控制按钮的集中 区域,操作区是游戏者进行游戏的场所。(1)控制区控制区中有以下一些按钮:开始游戏按钮:进入游戏开始界面, 玩游戏显示分数点数与所用时间 放弃游戏按钮:放弃本局游戏,进行游戏模式选择重新开始游戏。 退出按钮:退出游戏程序。重新洗牌按钮:把游戏中的图片重新排列。暂停按钮:暂停游戏。游戏说明按钮:游戏规则的说明。第5页共14页基于J2
18、ME的手机连连看游戏开发铮 Sun图4-1(2)操作区操作区是游戏者进行游戏的场所,游戏的规则很简单,就是用不超过两次转折的连线把两个相同的图片连起来,直到把游戏画面中的图片消完为止。游戏采用 GameMap类,用来加载图片和连连看的核心算法来选择图片 选中以及消除图片的算法,用GameCanvas来接收手机键盘消息来消除图片和重画地图,用 UlTimer与GameCanvas来控制时间来计算游戏时间与判断 是否能成功完成游戏通关。;w盒示九皿山二【瓦需彘k、tJIDlet 桃囲您b Sun1j 2ABC30Ef4 &HJj 5馭6 mno7 PQRS8tuv9WXZ* 0# +JIIIILh
19、ift Jz图4-2恭喜您?过关了关数:1币鬱? 逝所用时间:93图4-34.2功能详细设计功能的详细设计主要采用程序流程图作为工具来阐述第15页共14页图4-4(1)游戏结束时的判断这个主要表现两个问题:每一次消去图片后,均将相应位置的flag数组元素置0,且遍历flag数组是否为0。如果全部为 0,则游戏结束。当游戏结束时,直接向玩家发送gameover指令。解决的办法:首先,每次消去图片后仅将图片数目(gamevalue变量控制)减2,当为0时,将gameover变量设为真值。而每次都向函数发送图片 数目,当图片数目值为 0时,即判断玩家已经胜利。(2)游戏进入前的选择MIDlet。它控
20、制每个MIDlet程序都必须有一个主类,该类必须继承自着整个程序的运行,并且可以通过相应函数从程序描述文件中获取相关的信 息。该类中拥有可以管理程序的创建、开始、暂停(手机中很可能有正在运 行程序却突然来电的情况,这时应进入暂停状态。)、结束的函数。本程序主类为 MainMIDP,并实现接口 CommandLlstener。(3) 游戏背景首先显示的是游戏的背景介绍,在类MainMIDP 定义Form类对象 m_frmMain,在startApp()函数中判断是否为刚进入游戏,如果为假的话,将 创建Form类的实例,并且调用 即pend()方法在表单上放置m_MainList菜单。调用 set
21、CommandListener()命令使 Form 与 CommandListener 建立关联。调用 Displayable显示。seturrent()函数显示背景介绍窗口。当玩家点击ok后将调用display.setCurrent(m_MainList) 以显示游戏菜单 m_MainList 。当玩家按住上 或下键时,在函数keyPressed(int code)中的整型变量 menuIndex相应的减 1或加1,相应的,在 paint()函数中会根据 menuIndex绘制选项是否被选中。当移动选项条到某项,并点击ok时,在commandAction()方法中根据menulndex来判断
22、是“开始游戏”、“游戏说明”、“关于”、“退出”。例如当选择 关于”时,将调用 MainMIDP 类中的commandAction ()方法 以显示”关于”界面。(4) 游戏逻辑及五个重要类的实现GameCanvas类所实现的功能画游戏屏幕的时间间隔:private int m_pai ntTime;玩得时间计数:private int m_timeCo unt;一局游戏总共花费的时间:private int m_GameTimeCount;定时次调用次数计数: private int m_timeMcou nt;显示地图装载效果状态计数:private int mn iGame Map Co
23、u nt;画连接线标志:private boolea n m_bPa in tClea nF lag;private boolea n m_bPa in tClea nStart;private int mPai ntClea nCount;游戏运行状态标志:private int m_StatusFlag;0:游戏图片文件装载过程,在程序启动的时候,另外一线程装载。1:游戏地图文件初始化状态,出现地图初始化的效果2 :游戏进行中,检查剩下时间,调整状态条,显示分数等信息3:单节游戏结束,处理是否继续游戏、退出游戏、保存记录;4 :一局游戏结束,显示画面庆祝游戏地图信息:private Gam
24、eMap m_gameMap;接收键盘状态信息:调用keyPressed()函数来消除相同图片后的设置以及 画面的重画。并调用 GameMap类来进行游戏算法和规则的调用与判断。(5)地图的移动根据游戏的设定,游戏中选图片是向下向上移动的,实现此功能的方法。每个创建 Comma nd实例的J2ME的应用程序也必须创建实现 CommandListener接口的实例。每当用户通过 commandAction()方法的方式与 命令进行交互的时候,就会通过CommandListener.所以实现CommandListener 的类必须实现 commandAction()方法。在 comma ndAct
25、io n()方 法中,使用getabel()方法获取命令的 标签。如果 getLabel()=暂停”时,表示玩家点击了暂停键,此时, conti赋值为false,游 戏画面的绘制及游戏相关的运算暂停,并且,使用removeCommand(c)语句将暂停”移除,使用 addComma nd( new Comma nd(” 继续,Comma nd.OK,2);将” 继续 按纽”添加进来。当玩家点击继续 时,conti赋值为true,并且,一定要调用start()方法,否则继续功能不可用。必须调用start()方法的原因是:J2ME的线程已 stop()方法拿掉,如果想停止线程的运做,就必须依靠一个
26、旗标 (flag),在本程序中,flag就是boolean型变量conti。所以一旦此标识变量被 设为false,那么while(conti)循环就会结束,线程也会跟着结束。当用户按下继续”的时候,start()将重新产生一个线程继续执行相关的运算和画面绘制。当玩家通关时或者任务失败时,将显示相应信息,并使用上面的方法将暂停”键变为 返回”键盘,当点击 返回”键时,将返回主菜单选项,调用类 lzhhdm 里的方法 menuscreensecond(),在此方法中,实例化一个MenuScreen类对象,并且使选项新游戏”改变为”重新开始。完成此项功能的语句子为MenuScreen.mainmen
27、u0=”重新开始”。当选择”重新开始 时,使用 gamescreen=new gameScreen(this)将使所有变量重新被初始化,如地图的绘 制、敌人出现位置的重置、敌人的数量、玩家飞机的当前位置等。使用 gamescreen.start()重新开始程序的循环。在方法paint()过程中,除了要重绘地图、图片外还要在上方绘制关卡信息、玩家分数点、及所用时间等。首先使用Im.setViewWindow()和Im.paint()设定可视范围 ViewWindow 和从哪里画起。其次,使用 g.drawString()绘制屏幕上 方的关卡信息、战绩、玩家剩余生命标志。当每次刷新绘图页面时,应使
28、用GameCanvas的flushGraphics()将屏幕后台的缓冲区内的图像刷新到前台来 (flushGraphics()应该写在 paint() 的最后)。(6)核心算法一判断图片是否可擦除两点连接原理(0,0) 10原理坐标选中两点,坐标分别为 S( sx,sy)、T( tx,ty),判断连接从S 点开始,我们可以从四个方向与T点进行连接,分别是 上、下、左、右,在此,我们以 向上为例进行算法分析。每次向上连接一点 时,又有两个方向可以选择,即左和右(即分T在S的左、右边)。在此,我们选择选择 向左为例对算法进一步分析。确定了方向的选择,那么连接线的形状就是:(T在S的左边的连接情况)那么如何判断这一系列连接线是否可连呢?源点S的坐标为(sx, sy),目标点T坐标(tx,ty)在算法中我们定义几个临时变量:x1、x2、 y1、 y2,当然还有游戏地图的边界变量:stMap_x、stMap_y。源点S不需要判断,默认可以作为连接线上的一点。如果sy0,将sy-1赋给y1,如果坐标(sx、y1)没有图片文件(我们在此算 法中用empty表示),则标记此点为可连接点(我们在此算法中用 SetCntMaps(x, y)表示),如果有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年萍乡辅警协警招聘考试备考题库完整参考答案详解
- 2023年金昌辅警招聘考试真题附答案详解(轻巧夺冠)
- 2023年阜新辅警协警招聘考试备考题库含答案详解(基础题)
- 2024年密云县辅警招聘考试真题附答案详解(满分必刷)
- 2024年东莞辅警招聘考试题库有完整答案详解
- 2023年铜仁辅警招聘考试真题含答案详解(综合卷)
- 2023年黄石辅警协警招聘考试备考题库含答案详解(培优b卷)
- 2024年孝感辅警协警招聘考试备考题库含答案详解(b卷)
- 湖北省鄂东南示范高中教改联盟2025年生物高一第一学期期末调研试题含解析
- 2024年临汾辅警招聘考试真题及答案详解(有一套)
- 面向边缘计算的安全解决方案-全面剖析
- CN101664072A-奶皮子及其生产制作方法配方专利技术
- 光伏发电设计合同范本
- 2025年广西玉林市自来水公司招聘笔试参考题库含答案解析
- 跨文化视域下的过程写作:发展、比较与反思
- 商务楼租赁合同范本
- 新版建设工程工程量清单计价标准解读
- 成品化粪池施工方案
- 山西省三晋联盟山西名校2024-2025学年高二上学期11月期中联合考试 化学试题
- 藏毛窦的治疗及护理
- 农村集体经济组织内部控制制度
评论
0/150
提交评论