收藏 分享(赏)

毕业设计(论文)基于java的手机游戏开发.doc

上传人:cjc2202537 文档编号:1198462 上传时间:2018-06-17 格式:DOC 页数:28 大小:442.50KB
下载 相关 举报
毕业设计(论文)基于java的手机游戏开发.doc_第1页
第1页 / 共28页
毕业设计(论文)基于java的手机游戏开发.doc_第2页
第2页 / 共28页
毕业设计(论文)基于java的手机游戏开发.doc_第3页
第3页 / 共28页
毕业设计(论文)基于java的手机游戏开发.doc_第4页
第4页 / 共28页
毕业设计(论文)基于java的手机游戏开发.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、基于 Java 的手机游戏开发基于 Java 的手机游戏开发摘 要游 戏 “连 连 看 ”是 采 用 矩 阵 数 组 来 存 放 对 应 的 图 案 数 据 ,并 调 用 随 机 产生 数 值 函 数 Random()来 初 始 化 游 戏 。算 法 主 要 根 据 两 个 目 标 图 案 之 间 的 连接 方 式 ,采 用 遍 历 的 方 法 来 判 断 两 目 标 图 案 是 否 可 连 。游 戏 的 开 发 是 基 于J2ME 平 台 ,目 标 设 备 是 支 持 CLDC 1.1 和 MIDP 2.1 的 移 动 电 话 。开 发的 主 要 软 件 是 wireless_toolkit

2、。关键词:J2ME、手机游戏、连连看目 录1 引言 .12 需求分析 .22.1 游戏介绍 .22.2 环境介绍 .23 概要设计 .53.1 算法设计 .53.2 游戏架构设计 .73.2.1 游戏的类结构 .73.2.2 游戏操作流程 .84详细设计 .94.1 主类 LLKMIDlet .94.2 矩阵 LLKMatrix 类 .124.2.1 构造函数 .124.2.2 初始化矩阵 .124.2.3 设置和获取元素 .154.2.4 方块自动重排 .164.3 游戏画布 LLKCanvas 类 .174.3.1 构造函数 .174.3.2 游戏计时 .184.3.3 屏幕绘制 .185

3、 用户使用手册 .206 结论及尚存在的问题 .236.1 游戏功能 .236.2 开发方法 .236.3 真机测试 .246.4 存在的问题 .257 参考文献 .2511 引言随着 3G 的到来让人们的目光聚焦到了一个新兴的互联网终端手机上。手机的随身性让玩家有了随时随地玩游戏的可能,而且很随意,在日常的空余时间“见缝插针”即可。可以说,手机游戏简直可以“ 无孔不入 ”。而行业分析师也对这一行业持普遍的乐观态度。值得注意的是,新兴市场将是手机游戏的一块越发重要的领地。Pyramid Research 的最新报告显示,手机游戏市场稳步增长,用户数从 2005 年的 5500 万增加到了 20

4、08 年的 1.83 亿,总收入则增长到了 69 亿美元。报告预计,2014 年,市 场规 模有望达到 180 亿美元。在发达国家,由于手机应用商店的驱动,手机游戏的市场前景将继续看好;而在发展中国家,随着手机普及率的提升以及相关商业模式的支持,市场也会逐步被激活。发展中国家对于该市场的贡献颇大,新增用户中,印度以及中国占了相当大的比例。推动市场发展的有如下潜在的因素:更好更快的无线网络以及易于操作的手机终端改善了用户体验;触摸屏、3D 动画处理能力以及在线互动能力 让游戏开发商把游戏做得更好;苹果应用商店模式的刺激作用。Java 2 Micro Edition (J2ME)是一种针对移动电话

5、和 PDA 这样的小型设备的 Java 语言。大部分的手机厂商都迫切希望 Java 手机推广应用。上千万的 Java 手机已经到了消费者的手中。J2ME 与台式机中的 Java 相比还是有很大的限制,但是它已经极大的提高了移动电话支持游戏的能力。它有比 SMS 或 WAP 更好控制的界面,允 许使用子图形动画,并且可以通过无线网络连接到远程服务器。支持 Java 的手机的普及,所以它成为目前最好的移动游戏开发环境,我们在这里将详细研究 J2ME 游戏的开发。J2ME 不是手机上配置的唯一的解释语言,但是它是一个许多厂商支持的行业标准。一些专用的解释语言也在某些区域有上佳的表现,如北美的 Qua

6、lcomm 的 BREW ( Binary Runtime Environment for Wireless,用于无 线应用程序的二进制运行环境)和一些韩国移动运营商支持的名为 GVM 的标准。22 需求分析2.1 游戏介绍游 戏 的 名 称 叫 “连 连 看 ”。玩 法 是 只 要 将 相 同 的 两 张 牌 用 三 根以 内 的 直 线 连 在 一 起 就 可 以 消 除 。在 规 定 时 间 内 ,把 整 个 版 面 的所 有 牌 都 消 除 后 ,就 可 以 晋 级 。下 面 来 介 绍 本 游 戏 的 具 体 规 则 :1. 消去图案:在不超过三条线段的连接下,消去选中的两个相同图

7、案。当玩家按下图片时,在图案上画方框标志图片;当玩家在别外一个图案上按下时,检测图案是否相同,若相同则画出两个图案间的连线,并消去两个图案。2. 提示:在玩家找不出可消去的图案时,可提示出可消去的一组相同图案并且每次提示后,可提示的次数自动减一。3. 重新排列图案:在游戏进行到无图案可消去或玩家按下重新排列按键时,在原来的位置上重新排列现有的图案,以达到重新排列的目的。并且每次排列后,可排列的次数自动减一。4. 定时器:实现一个定时器,供游戏倒计时使用,每一轮的游戏时间为 360s,在时间到达后结束本轮游戏5. 组合变换:当图案消失时,剩下的图案有向某一方向靠拢的功能,以填补消去而剩下的空隙。

8、分别向上靠拢,向下靠拢,向左靠拢,向右靠拢,蹭靠拢向对角靠拢。6. 游戏分为三关:初级、中级、高级;每关分别有 6 种图案自动靠拢模式,当 6 种模式都通过后,则可以过关。当通过高级关时,则为通关。2.2 环境介绍基于 JAVA 的手机游 戏“ 连连看”,是使用 JAVA ME 框架进行开发的。下面对 JAVA ME 的相关技术进行介绍:一 基本概念J2ME(Java2 Platform, Micro Edition) :Java2 平台微型版CLDC(Connected, Limited Device Configuration): 连接受限设备配置CDC(Connected Device

9、Configuration):连接 设备配置MIDP(Mobile Information Device Profile) :移动信息设备描述KVM(The K Virtual Machine) :K 虚拟机二 CLDC/MIDPJ2ME 把设备分为两类:1 连接 设备( connected device):主要针对于那些有电源且电力充3裕的较大设备。例如:电视机,冰箱等;2 有线连接设备(Connected, Limited Device):主要针对于使用电池,小型的设备,例如:手机, pda 等。Sun 公司又把 J2ME 的 实现分为两层:Configuration 和 Profile。

10、1)Configuration 包括虚拟机(virtual machine),核心的类库与API。Configuration 层定义一个 java 虚拟机的特性与 java 类库的最小子集。也就是说, Configuration 层提供了开发人员一个最基础,最核心的 Java 平台。因 为 J2ME 把设备分为两类:联接设备(connected device)和有限联接设备(Connected, Limited Device)。对应这两种设备就有了两种 J2ME configuration。分别为 CDC(Connected Device Configuration)和 CLDC(Connec

11、ted, Limited Device Configuration)。这里请注意,CDC 使用的虚 拟机为 JVM,而 CLDC 使用的是 KVM(The K Virtual Machine)。KVM 是 sun 专门为使用 16/32 位 RISC/CISC 微处理器或控制器,并其可用内存为 160kb512kb 的的设备而开发的。KVM 比较小,通常只有 128K 或更少。2)Profile 层 也包含一组 API,主要 针对于特定的某一族系的 设备而定义。 profile 层在特定的 configuration 层上实现,而我们程序员则负责在特定的 profile 上编写应用程序。对 于

12、手机,pda 等Connected Limited Device,它们的 profile 层称为 MIDP(Mobile Information Device Profile)。于是 MIDP 与 CLDC 合在一起就构成了一个完整的 J2ME 架构。 顺便说一句,对于 MIDP 上的应用程序 sun也有独特的叫法,它们被称为 MIDlet。三 J2ME 框架图与 J2SE 和 J2EE 相 比 ,J2ME 总 体 的 的 运 行 环 境 和 目 标 更 加多 样 化 ,但 其 中 每 一 种 产 品 的 用 途 却 更 为 单 一 ,而 且 资 源 限 制 也更 加 严 格 。为 了 在 达

13、 到 标 准 化 和 兼 容 性 的 同 时 尽 量 满 足 不 同 方 面的 需 求 ,J2ME 的 架 构 分 为 Configuration、Profile 和 Optional Packages(可 选 包 )。它 们 的 组 合 取 舍 形 成 了 具 体 的 运 行 环 境 。Configuration 主 要 是 对 设 备 纵 向 的 分 类 ,分 类 依 据 包 括 存 储和 处 理 能 力 ,其 中 定 义 了 虚 拟 机 特 性 和 基 本 的 类 库 。已 经 标 准 化的 Configuration 有 - Connected Limited Device Confi

14、guration(CLDC)和 Connected Device Configuration(CDC)。Profile 建 立 在 Configuration 基 础 之 上 ,一 起 构 成 了 完 整 的 运行 环 境 。它 对 设 备 横 向 分 类 ,针 对 特 定 领 域 细 分 市 场 ,内 容 主 要 包括 特 定 用 途 的 类 库 和 API。CLDC 上 已 经 标 准 化 的 Profile 有4Mobile Information Device Profile ( MIDP)和 Information Module Profile(IMP),而 CDC 上 标 准 化

15、的 Profile 有 Foundation Profile(FP)、Personal Basis Profile(PBP)和 Personal Profile(PP)。可 选 包 独 立 于 前 面 两 者 提 供 附 加 的 、模 块 化 的 和 更 为 多 样 化的 功 能 。目 前 标 准 化 的 可 选 包 包 括 数 据 库 访 问 、多 媒 体 、蓝 牙 等 等 。四 开发工具开 发 Java ME 程 序 一 般 不 需 要 特 别 的 开 发 工 具 , 开 发 者 只 需要 装 上 Java SDK 及 下 载 免 费 的 Sun Java Wireless Toolkit

16、 就 可以 开 始 编 写 Java ME 程 式 ,编 译 及 测 试 , 此 外 目 前 主 要 的IDE(Eclipse 及 NetBeans)都 支 持 Java ME 的 开 发 ,个 别 的 手 机 开发 商 如 Nokia 及 Sony Ericsson 都 有 自 己 的 SDK, 供 开 发 者 在开 发 出 兼 容 于 他 们 的 平 台 的 程 序 。五 J2ME 类本游戏中主要用到的类及作用:java.util.Timer:Java 定时器(java.util.Timer )有定时触发计划任务的功能,通过配置定时器的间隔时间,在某一间隔时间段之后会自动有规律的调用预先所

17、安排的计划任务(java.util.TimerTask )。java.util.Random:方法 Random()用来创建一个新的随机数生成器。此构造方法将随机数生成器的种子设置为某个值,该值与此构造方法的所有其他调用所用的值完全不同。此游戏中用在数组初始化中。javax.microedition.midlet.MIDlet;用来创建构造主 类。javax.microedition.lcdui.*;绘制游戏的画面53 概要设计3.1 算法设计连连看的算法主要是判断两个单元格是否可连,按照连连看规则,两个单元格的内容首先必须是相同的;其次,两个单元格之间边疆的折点不超过两个(连接线由水平线和垂

18、直线组成)一、两图案间可消除的连接情况:直线相连:两条线段相连:三条线段相连:如图所示可以发现,如果有折点,每个折点必定有且至少有一个坐标(X 或者 Y(和其中一个单元格是相同的,也就是说,折点必定在两个单元格所在的 X 方向和 Y 方向的睩上。这也是连连看算法的一个出发点。二、用数组表示图形矩阵可以将游戏中的图片按矩阵看做是一个二维数组,其中的所有图片可以看作是数组中的一个具体的元素。那么,游戏中相同的图片可以看做是数组中不同位置两个值相同的元素。对于矩阵中的空白部分,将其对应于数组中一个特殊的值如“1” 。空白区域是可以 连线的,所以当边疆的等于1 的数组元素的横向索引或纵向索引相同时,可

19、以认为这是一条直线。6 0 0 0 0 0- 1 0 0 0- 1 0 0 0- 1 0 0当数组中两个位置的值相同,并且两个单元格间只需要用不超过 3 条直线就能连接起来时,就让这两个位置的值变为1,如果数组中全是1,就认为游戏已经结束。用代码的形式表示:if(用户选择 点)当前点 = 用 户选择的点if(存在上次选择的点)If(当前点与上次选择的点可消除)消除两点;上次选择的点 = null;if 所有点的值都等于-1)游戏结束;电数组初始化时,先按顺序排列,这样能简单地确保同样的图案出现的次数是偶数次,然后随机交换数组中的内容,图案种类越多,难度越高。三、消除情况根据游戏规则,如果两个单元格之间可以用不超过 3 条直线(也可以不超过两个转折的直线)连接起来,这两个单元格就可以消除。现在从算法的角度来分析一下所有可能的情况。首先一种可能是,两点之间只需要 1 条直线连接。如果两个单元格之间只需要 1 条直线能够连接起来,那么它们的横坐标或纵坐标必定相同,有了这个条件,判断是否只需要 1 条直接连接就简单了许多。其次一种可能是,两点之间需要 2 条直线连接。如图, A、B 两点如果需要 2 条直线连接起来,有可能有两种方式。但通过观察可以发

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报