J2ME手机连连看游戏报告.doc_第1页
J2ME手机连连看游戏报告.doc_第2页
J2ME手机连连看游戏报告.doc_第3页
J2ME手机连连看游戏报告.doc_第4页
J2ME手机连连看游戏报告.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要 J2ME 虚拟机在手机上的普及为手机游戏的发展提供了最适合的土壤 随着 MIDP2 0 的发布 特别是其中新增的 GameAPI 使得手机游戏开发者可以更专注于 游戏性的增强而不再是繁琐的动画处理与地图设计 让开发过程变得更加方便迅 捷 它是手机游戏发展的重要里程碑 随着社会节奏的加快 平常工作的竞争强度也加大 生活的压力也跟着加重 所以休息时或下班后大家都需要个休闲的娱乐工具 来放松自己 缓解自己的压 力 消除紧张的疲劳状态 连连看游戏是一种意趣休闲的小游戏 不仅能调节精 神 还能在游戏中锻炼我们的眼力视野 注意力的专心的程度 开发我们的思维 能力 同时可以充实自己 向高等级挑战 培养我们面对困难时自己所具有攻克 困难的信心 本文完整地描述了如何在 Jbuilder 平台应用 J2ME 技术 特别是 MIDP2 0 中 新增加的 GameAPI 在手机上实现连连看游戏 原型为电脑上游戏 连连看 核心在于其 GameMap 类这一模块的构建 其中涉及到的技术有 Midlet 框架 游 戏状态机 线程 精灵 地图 关卡 程序优化及兼容性设计等 关键词 J2ME Midlet 框架 连连看 地图 ABSTRACT J2ME virtual machine on your phone penetration of the cell phone game development offers the most 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 important 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 one alleviate one s 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 GameMap class 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 the platform of the main technologies Chapter III of the game for a simple needs analysis Chapter 4 is a concrete realization of the game and describe 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 基于 J2ME 的手机连连看游戏开发 目目 录录 1 引言引言 1 1 1 编写目的编写目的 1 1 2 开发背景开发背景 1 1 3 项目开发目的项目开发目的 1 1 4 项目提出意义项目提出意义 2 1 5 参考文献参考文献 2 2 总体设计总体设计 2 2 1 需求分析需求分析 2 2 1 1功能需求功能需求 2 2 1 2开发环境需求开发环境需求 3 2 2 运行环境运行环境 3 3 开发平台及开发技术开发平台及开发技术 4 3 1 J2ME 基础知识基础知识 4 3 2 开发工具和环境搭配开发工具和环境搭配 4 3 2 1开发工具开发工具 4 3 2 2环境搭配环境搭配 5 4 详细设计详细设计 5 4 1 界面详细设计界面详细设计 5 4 2 功能详细设计功能详细设计 8 4 3 打包测试打包测试 14 5 结论结论 14 基于 J2ME 的手机连连看游戏开发 第 1 页 共 14 页 1 引言引言 1 1 编写目的编写目的 本报告是对连连看游戏进行详细设计 是系统实现的出发点 是后续开发步 骤及软件维护工作的基础 报告用于沟通用户 加深开发人员对系统的理解 使 得程序员能够根据本报告实现系统 本报告将成为以下各开发阶段的参考和约束 文档 1 2 开发背景开发背景 随着技术对游戏经验的促进 游戏市场持续增长 越来越多的人开始认为 经过了许多人共用一台计算机的大型主机时代 一人一台计算机的个人 PC 时代 之后 下一个时代就是一人多台计算设备的普及计算时代 Ubiquitous Computing IBM 称之 Pervasive Computing 计算设备将从单一的 PC 扩展到各 种各样的大小和功能 从家庭消费电子产品 到个人随身携带 穿着 车载的各 种移动信息处理设备 多样化是这个领域的最大特点 一次编写 到处运行 的 平台无关性 对网络 多重设备间联网的机制 JINI 显然对这个领域是至关重 要的软件条件 这个领域内的 Java 标准就是 J2ME 1 3 项目开发目的项目开发目的 本设计开发一个基于 J2ME 的手机连连看游戏 主要包括以下模块 游戏引擎 模块 游戏界面模块 要求学生按照软件工程的方法 从需求分析入手 到概要 设计 详细设计 然后编码 测试 最终完成 能够培养学生理解并掌握软件开 发基本流程和方法 掌握基于 J2ME 的基本开发技术 游戏开发技术 1 4 项目提出意义项目提出意义 随着社会节奏的加快 平常工作的竞争强度也加大 生活的压力也跟着加重 基于 J2ME 的手机连连看游戏开发 第 2 页 共 14 页 所以休息时或下班后大家都需要个休闲的娱乐工具 来放松自己 缓解自己的压 力 消除紧张的疲劳状态 连连看游戏是一种意趣休闲的小游戏 不仅能调节精 神 还能在游戏中锻炼我们的眼力视野 注意力的专心的程度 开发我们的思维 能力 同时可以充实自己 向高等级挑战 培养我们面对困难时自己所具有攻克 困难的信心 1 5 参考文献参考文献 1 詹建飞 J2ME 开发精解 北京 电子工业出版社 2006 1 2 张小玮 J2ME 无线平台应用开发 北京 清华大学出版社 2004 3 张小玮著 J2ME 无线平台应用开发 清华大学出版社 2003 年 11 月 2 总体设计总体设计 2 1 需求需求分析分析 2 1 1 功能需求功能需求 为了便于游戏者操作 游戏的界面简洁明了 控制区和操作区分别在游戏界 面的上部分和下部分 这样游戏者不至于在进行游戏时搞混 控制区由一排按钮 组成 里面包括游戏的模式选择 游戏的开始 暂停 游戏成绩分数点 游戏的 帮助主题以及游戏的设置选项 游戏开始由函数调用来完成游戏图片的加载 随 机产生图片排列 游戏操作区是用手机的上下左右键来控制图片的移动 用中间 键作为选中键 当连续选定两个相同图片后 且两者的连线在算法允许消去的范 围内 则消去这两个相同的图形 当游戏者一时找不到可消去的相同的图片时 就可以利用控制区中的提示按钮 则会随机的产生一对可消去的图片 当游戏中 还有图片且不可消去时 则可利用控制区中重新洗牌按钮 则会把存在的图片打 乱后重新组合 就可以继续游戏 基于 J2ME 的手机连连看游戏开发 第 3 页 共 14 页 图 3 2 数据流图 图 3 3 数据流图 2 1 2 开发环境需求开发环境需求 为了游戏者安装的方便以及游戏的兼容性 考虑到游戏者大多数用的都是 Windows 操作系统 游戏在 Windows 操作系统下开发 把游戏的兼容性问题降低 到最低限度 游戏是 Eclipse 的环境下开发的 2 2 运行环境运行环境 1 设备 微机一台 CPU Intel 奔腾 4 以上版本 内存 512MB 以上 硬盘 20G 打印机 1 台 2 支持软件 适用操作系统 Windows XP 以上 Windows 操作系统 运行软件 jdk1 60 Eclipse3 2 wireless 2 5 2 基于 J2ME 的手机连连看游戏开发 第 4 页 共 14 页 3 开发平台及开发技术开发平台及开发技术 3 1 J2ME 基础知识基础知识 J2ME 即 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 WTK 的全称是 Sun J2ME Wireless Toolkit Sun 的无线开发工具包 这 一工具包的设计目的是为了帮助开发人员简化 j2me 的开发过程 该工具箱包含 了完整的生成工具 实用程序以及设备仿真器 2 J2ME 集成开发工具 Eclipse Eclipse 是一个开发源代码的 基于 java 的可扩展开发平台 Eclipse 本身只 是一个框架和一组响应的服务 并不能够开发什么程序 在 Eclipse 中几乎每样 东西都是插件 实际上正是运行在 Eclipse 平台上的种种插件提供我们开发程序 的各种功能 同时各个领域的开发人员通过开发插件 可以构建与 Eclipse 环境 无缝集成的工具 EclipseME 作为 Eclipse 一个插件 致力于帮助开发者开发 J2ME 应用程序 EclipseME 并不为开发者提供无线设备模拟器 而将各手机厂商的实用模拟器紧 基于 J2ME 的手机连连看游戏开发 第 5 页 共 14 页 密连接到 Eclipse 开发环境中 为开发者提供一种无缝统一的集成开发环境 3 2 2 环境搭配环境搭配 1 WTK 由于 WTK 自身并没有附带 Java 的运行环境 JDK 所以 在 WTK 安 装之前你需要安装自己的 JDK 安装 JDK 1 4 2 安装 J2ME Wireless Toolkit J2ME WTK 2 5 2 参考文章 搭建开发平台 WTK 2 Eclipse 除了 Eclipse 与 EclipseME 之外 你还需要 java 运行环境和一些手机 模拟器来完成整个搭建工作安装 JDK 1 4 2 安装 Eclipse SDK 3 1 安装 EclipseME 1 0 参考文章 搭建开发平台 Eclipse 4 详细设计详细设计 4 1 界面详细设计界面详细设计 游戏的界面分为控制区和操作区 控制区是整个游戏的控制按钮的集中区域 操作区是游戏者进行游戏的场所 1 控制区 控制区中有以下一些按钮 开始游戏按钮 进入游戏开始界面 玩游戏显示分数点数与所用时间 放弃游戏按钮 放弃本局游戏 进行游戏模式选择重新开始游戏 退出按钮 退出游戏程序 重新洗牌按钮 把游戏中的图片重新排列 暂停按钮 暂停游戏 游戏说明按钮 游戏规则的说明 基于 J2ME 的手机连连看游戏开发 第 6 页 共 14 页 图 4 1 2 操作区 操作区是游戏者进行游戏的场所 游戏的规则很简单 就是用不超过两次转 折的连线把两个相同的图片连起来 直到把游戏画面中的图片消完为止 游戏采用 GameMap 类 用来加载图片和连连看的核心算法来选择图片选中 以及消除图片的算法 用 GameCanvas 来接收手机键盘消息来消除图片和重画地 图 用 UITimer 与 GameCanvas 来控制时间来计算游戏时间与判断是否能成功完 成游戏通关 基于 J2ME 的手机连连看游戏开发 第 7 页 共 14 页 图 4 2 基于 J2ME 的手机连连看游戏开发 第 8 页 共 14 页 图 4 3 4 2 功能详细设计功能详细设计 功能的详细设计主要采用程序流程图作为工具来阐述 自动游戏开始游戏退出游戏 暂停游戏 图 4 4 1 游戏结束时的判断游戏结束时的判断 这个主要表现两个问题 每一次消去图片后 均将相应位置的 flag 数组元素置 0 且遍历 flag 数组是 否为 0 如果全部为 0 则游戏结束 当游戏结束时 直接向玩家发送 gameover 指令 解决的办法 首先 每次消去图片后仅将图片数目 gamevalue 变量控制 减 2 当为 0 时 将 gameover 变量设为真值 而每次都向函数发送图片数目 当 图片数目值为 0 时 即判断玩家已经胜利 2 游戏进入前的选择游戏进入前的选择 每个 MIDlet 程序都必须有一个主类 该类必须继承自 MIDlet 它控制着整 基于 J2ME 的手机连连看游戏开发 第 9 页 共 14 页 个程序的运行 并且可以通过相应函数从程序描述文件中获取相关的信息 该类 中拥有可以管理程序的创建 开始 暂停 手机中很可能有正在运行程序却突然 来电的情况 这时应进入暂停状态 结束的函数 本程序主类为 MainMIDP 并实现接口 CommandLIstener 3 游戏背景游戏背景 首先显示的是游戏的背景介绍 在类 MainMIDP 定义 Form 类对象 m frmMain 在 startApp 函数中判断是否为刚进入游戏 如果为假的话 将创建 Form 类的实例 并且调用 append 方法在表单上放置 m MainList 菜单 调用 setCommandListener 命令使 Form 与 CommandListener 建立关联 调用 Displayable 显示 seturrent 函数显示背景介绍窗口 当玩家点击 ok 后将调用 display setCurrent m MainList 以显示游戏菜单 m MainList 当玩家按住上或下键 时 在函数 keyPressed int code 中的整型变量 menuIndex 相应的减 1 或加 1 相应 的 在 paint 函数中会根据 menuIndex 绘制选项是否被选中 当移动选项条到某项 并点击 ok 时 在 commandAction 方法中根据 menuIndex 来判断是 开始游戏 游戏说明 关于 退出 例如当选择 关于 时 将调用 MainMIDP 类中的 commandAction 方法以显 示 关于 界面 4 游戏逻辑及五个重要类的实现游戏逻辑及五个重要类的实现 GameCanvas 类所实现的功能 画游戏屏幕的时间间隔 private int m paintTime 玩得时间计数 private int m timeCount 一局游戏总共花费的时间 private int m GameTimeCount 定时次调用次数计数 private int m timeMcount 显示地图装载效果状态计数 private int m IniGameMapCount 画连接线标志 private boolean m bPaintCleanFlag private boolean m bPaintCleanStart private int m iPaintCleanCount 游戏运行状态标志 private int m StatusFlag 0 游戏图片文件装载过程 在程序启动的时候 另外一线程装载 基于 J2ME 的手机连连看游戏开发 第 10 页 共 14 页 1 游戏地图文件初始化状态 出现地图初始化的效果 2 游戏进行中 检查剩下时间 调整状态条 显示分数等信息 3 单节游戏结束 处理是否继续游戏 退出游戏 保存记录 4 一局游戏结束 显示画面庆祝 游戏地图信息 private GameMap m gameMap 接收键盘状态信息 调用 keyPressed 函数来消除相同图片后的设置以及画面 的重画 并调用 GameMap 类来进行游戏算法和规则的调用与判断 5 地图的移动地图的移动 根据游戏的设定 游戏中选图片是向下向上移动的 实现此功能的方法 每个创建 Command 实例的 J2ME 的应用程序也必须创建实现 CommandListener 接口的实例 每当用户通过 commandAction 方法的方式与命令 进行交互的时候 就会通过 CommandLIstener 所以实现 CommandListener 的类必 须实现 commandAction 方法 在 commandAction 方法中 使用 getabel 方法获取命令的标签 如果 getLabel 暂停 时 表示玩家点击了暂停键 此时 conti 赋值为 false 游戏画面的绘制 及游戏相关的运算暂停 并且 使用 removeCommand c 语句将 暂停 移除 使用 addCommand new Command 继续 Command OK 2 将 继续 按纽 添加进来 当 玩家点击 继续 时 conti 赋值为 true 并且 一定要调用 start 方法 否则继续功 能不可用 必须调用 start 方法的原因是 J2ME 的线程已 stop 方法拿掉 如果 想停止线程的运做 就必须依靠一个旗标 flag 在本程序中 flag 就是 boolean 型变量 conti 所以一旦此标识变量被设为 false 那么 while conti 循环就会结束 线程也会跟着结束 当用户按下 继续 的时候 start 将重新产生一个线程继续执 行相关的运算和画面绘制 当玩家通关时或者任务失败时 将显示相应信息 并使用上面的方法将 暂 停 键变为 返回 键盘 当点击 返回 键时 将返回主菜单选项 调用类 lzhhdm 里的方法 menuscreensecond 在此方法中 实例化一个 MenuScreen 类对象 并 且使选项 新游戏 改变为 重新开始 完成此项功能的语句子为 MenuScreen mainmenu 0 重新开始 当选择 重新开始 时 使用 gamescreen new gameScreen this 将使所有变量重新被初始化 如地图的绘制 敌 人出现位置的重置 敌人的数量 玩家飞机的当前位置等 使用 gamescreen start 重 基于 J2ME 的手机连连看游戏开发 第 11 页 共 14 页 新开始程序的循环 在方法 paint 过程中 除了要重绘地图 图片外还要在上方绘制关卡信息 玩家 分数点 及所用时间等 首先使用 lm setViewWindow 和 lm paint 设定可视范围 ViewWindow 和从哪里画起 其次 使用 g drawString 绘制屏幕上方的关卡信息 战绩 玩家剩余生命标志 当每次刷新绘图页面时 应使用 GameCanvas 的 flushGraphics 将屏幕后台的缓冲区内的图像刷新到前台来 flushGraphics 应该写 在 paint 的最后 6 核心算法核心算法 判断图片是否可擦除判断图片是否可擦除 两点连接原理两点连接原理 10 9 7 8 0 0 原理坐标原理坐标 选中两点 坐标分别为 S sx sy T tx ty 判断连接从 S 点 开始 我们可以从四个方向与 T 点进行连接 分别是上 下 左 右上 下 左 右 在此 我们以向上向上为例进行算法分析 每次向上连接一点时 又有两 个方向可以选择 即左和右 即分 T 在 S 的左 右边 在此 我们 选择选择向左向左为例对算法进一步分析 确定了方向的选择 那么连接 线的形状就是 基于 J2ME 的手机连连看游戏开发 第 12 页 共 14 页 T T 在 S 的左边的连接情况 那么如何判断这一系列连接线是否

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论