1、 毕 业 设 计 ( 论文 ) J2ME 手机游戏的开发 -Beckham Goal 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期: J2ME 手机游戏的开发 -Beckham Goal 摘 要 J2ME(Java 2 Micro Edition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其 “ Write Once, run anywhere” 的 Java 特性而提高开发的效率。随着手机的日益普及、 Java 功能在移动设备上的实
2、现, Java 应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于 J2ME技术的应用,开发一款简单的手机游戏程序 -Beckham Goal。 论文在分析了实现小游戏的相关基础技术及理论后,对该游戏进行了功能需求分析、模块划分及总体设计,解决了游戏中涉及的碰撞检查以及其他若干关键技术,最后在 J2ME平台下实现了该小游戏,并通过验证达到预期的效果 。 关键词 : J2ME;手机游戏; K-Java;碰撞检查 The Development of J2ME Mobilephone Game -Beckham Goal Abstra
3、ct As a new development technology, J2ME (Java 2 Micro Edition) emerged with the development of various communications equipments, especially mobile facilities. Since it is a kind consumption-oriented of electronic product, it offers a completely new solution to the intelligentization and diversific
4、ation of communications equipments. Besides, due to its feature of “Write Once, run anywhere”, it improves the efficiency of development. Along with the popularization of mobile phone and the application of Java to the mobile equipments, gradually the influence of mobilephones added-value service is
5、 shown, which is produced by the application of Java to the daily life and informing. This paper focuses on the application of J2ME and develops a mobilephone game-Beckham Goal. Based on the analysis of basic technique and theories, this paper conducts analysis of function demand and module measurem
6、ent as well as macro-design. As a result, this paper solves the conflict detection and some other key technique. Finally this paper successfully develops this mobilephone by use of J2ME. And then the anticipative purpose has been met after the validation. Key words: J2ME; Mobilephone game; K-Java; C
7、onflict Detection目 录 论文总页数: 25页 1 引言 . 1 1.1 手机游戏概述 . 1 1.2 JAVA手机游戏的发展现状 . 1 1.3 手机游戏的发展前景 . 2 2 J2ME的概述与相关理论基础 . 3 2.1 J2ME的简介 . 3 2.2 J2ME的构架 . 3 2.3 J2ME游戏开发基础相关 . 4 2.3.1 基于精灵的动画 . 4 2.3.2 GameCanvas 类来实现平稳动画 . 4 2.3.3 图形坐标 . 5 2.3.4 检测对象之间的冲突 . 5 2.4 常用开发工具及其配置与使用 . 5 3 需求分析与设计方案 . 6 3.1 需求分析
8、. 6 3.2 设计方案 . 7 3.3 游戏初步功能设计 . 8 4 游戏的设计流程以及实现 . 9 4.1 游戏的设计 . 9 4.2 游戏的实现 . 10 4.2.1. 图像和精灵的创建和绘制 . 10 4.2.2. 玩家按键移动 的设置 . 11 4.2.3. 胜利及失败的判定 . 13 4.2.4. 球员运动轨迹的设置 . 15 4.2.5. 游戏中分数的记录 . 16 4.3 碰撞冲突机制的实现 . 20 5 系统测试 . 20 结 论 . 22 参考文献 . 23 致 谢 . 24 声 明 . 25 第 1 页 共 25 页 1 引言 1.1 手机游戏概述 手机游戏几乎是当今市面
9、上所有手机所必 有的。在几年前的机型中,游戏都是手机中自带的,称为嵌入式游戏,由手机生产厂商设计并直接嵌入在手机里面。这样的游戏用户不能自行开发、添加及删除,其游戏种类取决于不同的机型,是一种单机游戏。随后的几年兴起了一种基于短信的游戏,由用户发送特定字符串给短信游戏提供商,来控制游戏的动作或剧情的发展。随着 wap的兴起,出现了一种基于浏览器的游戏,和短信游戏差不多,由用户手机通过 wap登录游戏提供商所提供的网址,然后填写或选择相应表单来操作游戏。上面两类游戏都是基于文本的,操作比较繁琐,游戏性 不强。短信游戏每做一次操作( 也就是发送一条短信)需要花费一毛钱 ; wap 游戏无论是通过
10、CSD 上网还是通过 GPRS 上网都需要出上网费用。两种游戏的花费都比较高。现在新出的手机很大一部分都支持Java程序下载,而且这是一种趋势。由 Java 开发的游戏可以对图像进行操作,是动态的。而且可以接入网络,既可以开发单机游戏也可以开发网络游戏。随着彩屏手机的普及,游戏可以不再是黑白的,可随心所欲的为游戏中的不同物体赋予不同的颜色。 过去的手机是一个封闭的操作系统,除非用厂商自己的软件和工具,否则无法对手机的菜单进行改动,更无法在手机上附加其他应用。而 K-Java 技术的应用将摆脱这些传统的束缚, K-Java 编写的应用程序可以兼容不同的网络协定,简单说就是,只要网络内容服务提供商
11、提供 K-Java服务,用户的 K-Java手机就可以拥有无限扩充应用的能力。 K-Java 服务是一种新的移动数据业务的增值服务,它为用户提供了一个开放的平台,能更好地为用户提供全新图形化、动态化的移动增值服务。用户使用支持 K-Java 功能的手机终端,接入网络内容服务提供商的 K-Java服务平台,可以通过手机随意下载 Java应用软件,能方便地享受类似于 Internet 上的各种服务,如下载游 戏、动漫、小说等,也可进行各种在线应用,如联网游戏、收发邮件、证券炒股、信息查询等。 1.2 Java手机游戏的发展现状 在欧美市场 , 由于较早采用 GPRS技术 , 所以欧洲和美国运营商的
12、 K-Java也开展得较早 , 不过早期的应用并没能在个人消费市场激起太大的波澜。而日韩的无线数据业务从发展之初就将目标锁定在了游戏、娱乐等个人消费方面。 K-Java技术能够利用手机有限的硬件条件使得 PC 上大量的互动性娱乐、游戏应用在手机上 , 正是凭借着这一技术特点 , K-Java迅速成为了手机游戏的主流编程语言。在欧美市场 , 2002年此项业务 的直接收入已经超过了 2.45亿美元。 在中国 , 2003年 2月 15日 , 中国移动开始了大范围的 K-Java应用测试。 4第 2 页 共 25 页 月 8日 , 无线 K-Java 服务被移动正式定名为 “ 百宝箱 ”, 并全面
13、开始免费试用。而在发展较快的广东地区 , 更是从 5月 17日开始了大规模的 K-Java 业务推广 ,投入资金多达千万元。 7月 1日 , 中国移动宣布了 “ 百宝箱 ” 正式商用的消息 ,K-Java在中国市场的掘金旅程也将由此开启。 但是, K-Java 目前在中国的发展速度却不够快, 主要的原因 是用户群体不足。首先是终端不足。在市场上,能够支持 K-Java 的手机很 少,而且几乎都是几个国外主流品牌,其定位也较高,而国内品牌,介于成本和技术,一般都不含K-Java 功能。与此同时,大量已有手机的老用户不会因此功能而重新购置一台新的手机。其次,在拥有 K-Java 功能的手机用户群体
14、中,懂得或者愿意使用K-Java的人却更少。所以,我们必须期待更多含有 K-Java功能的面向各个消费群体的手机上市和普及,以及用户对手机附加功能使用意识的加强。 1.3 手机游戏的发展前景 由 Juniper Research 发布的最新调查说明, Java 手机游戏在 2008 年将会获得超过 63 亿美元得收益。据 IDC 预计,仅在美国,整个手机无线游戏业务的硬件、软件以及服务所带来的收入在 2006年将达到 40亿美元,而更别说有着更大手机无线游戏市场潜力的日本、韩国和中国等亚洲市场。预计到 2006 年,全球的无线游戏市场总值将达 170亿美元。研究机构 Informa分析说,手机
15、游戏是全球游戏市场中增长最快的部分,其产值将从 2002年的 2.43亿美元上升至 2007年的 38 亿美元。英国市场研究机构 AnalysysLtd 在这份研究报告中称,随着彩屏智能手机的广泛应用和手机功能不断升级,游戏市场预期将从 2002 年的 2 亿欧元,至 2008 年时增长到接近 30 亿欧元。 Frost&Sullivan 研究公司指出,全球移动游戏业收入 2008 年将上升至 93.4亿美元。 Ovum公司则指出,到 2006年,全球移动游戏业的价值将是 44 亿美元。比较保守的 In-Stat/MDR 研究公司也指出,无线游戏业的营收将以数十亿计, 2006 年将达到 28
16、 亿美元。据StrandConsults公司预测,到 2005年,预计手机移动游戏和娱乐的营收将会成为移动业务中利润最大的一项服务。来自众多研究公司的结果似乎都在表明:无线游戏将是下一个互联网金矿。 如今,从高档写字楼到青青校 园,手机无处不在,手机如今已成为都市时尚文化和消费主义的象征。本来手机只是用来通话,后来可以发短信,现在当人们空闲无聊时候,手机用户们将会转向那些提供游戏和娱乐的服务的功能也就显现出来了。 随着 2.5G和 3G 的大发展,彩屏手机今年包括今后几个将会逐步 取代 黑白手机,后几年的时间里,彩屏手机将具有类似 GameBoys 游戏机的功能。更重要的是随着数据业务的 成熟
17、,寄托于移动通信网络与移动终端的无线游戏,使手机游第 3 页 共 25 页 戏由单机 游戏 迅速 的 过渡到了类似于电脑上网络游戏的时代。 Java将成为无线游戏发展的中坚力量,由 Java所 开发的手机游戏将占据巨大的市场分额。 2 J2ME 的概述与相关理论基础 2.1 J2ME的简介 J2ME 是 Sun微系统公司流行 Java编程语言的紧凑版本。很多人没有意识到Java 作为一种语言刚刚发明的时候是为了用来进行移动设备编程的,于是,它最终以 J2ME的形式来实现这个目的。 J2ME包括一组开发工具和丰富的应用程序接口( API)以供开发手机应用程序,人们称之为 MIDlet。 J2ME
18、也包括 K虚拟机,它负责协助 Java 字节码在每个具体手机上的执行。依靠通用的字节码而不是本地应用程序代码, J2ME 就能够开发你的游戏的基 本代码,并且能够移植到不同的手机而不需要费太大力气。事实上,如果不需要改变屏幕尺寸和图形显示能力,在 J2ME 手机之间移植一个游戏所需要的工作几乎是零。 在美国的手机制造商中, J2ME 享受着最广泛的工业支持。在市场上,Motorola, Nakia, Research In Motion( RIM)和 Samsung等业界巨头都有功能基于 J2ME的手机。 2.2 J2ME的构架 J2ME 分为四层架构,分别是操作系统、 Java 虚拟机、 C
19、onfiguration 和Profile。其中 Configuration 和 Profile是 Sun在 J2ME中引入的两个全新的概念。 ( 图 1) 图 1 J2ME 的架构 为手机和 PDA 等移动设备定义的 Configuration 和 Profile 分别为: CLDC( Connected Limited Device Configuration,连接受限设备配置)和 MIDPHost Operating System Java Virtual Machine Configuration Profile 第 4 页 共 25 页 ( Mobile Information De
20、vice Profile,移动信息设备描述)。下面我们来了解一下 CLDC和 MIDP CLDC、 MIDP与 MIDlet CLDC( Connected Limited Device Configuration,连接受限设备配置) 这是用来开发在某个特定范围的设备上运行的应用程序所要用的一组最 API。无线设备的标准配置叫做 CLDC。 为了更具体些, CLDC 清楚地列出了以下和无线移动设备相关的信息: Java编程语言的功能子集; Java 虚拟机的功能子集;无线移动应用程序开发所需的核心 API; CLDC所针对的无线移动开发设备的硬件需求。 MIDP( Mobile Informa
21、tion Device Profile,移动信息设备描述)专为移动信息设备而设计,补充了 CLDC。 就是建立在 CLDC基础上用来描述手机和寻呼机这样的无线移动设备的框架。 2.3 J2ME游戏开发基础相关 2.3.1 基于精灵的动画 在众多游戏中使用的功能更加强大的动画技术是基于角色的动画,也叫做精灵动画( sprite animation),基于角色的动画就是图形对象可以独立于背景移动。基于角色的动画中的每一个图形对象都叫做一个精灵,并且它的位置可以随着时间而变化。也就是一个精灵具有一个相关的速率,可以决定它的位置如何随着时间而变化。现在几乎所有的视频游戏都要在某种程度上使用精灵。 在
22、MIDP1.0中,我们必须自己 用 专门的类来实现 Sprite,但是 MIDP2.0为 Sprite 提供了强力支持,可以创建静态,动态,不透明和透明的 Sprite。(本游戏的 MIDP 为 2.0) MIDP2.0 API 包含了对精灵动画的支持。在 MIDP 编程中,使得精灵动画成为可能的两个主要的类是 Layer类和 Sprite类。 Layer类对一个叫做图层( Layer)的通用图形对象的建模,该对象充当精灵和其他图形游戏对象的基础。 Layer类跟踪一个可视元素的位置、高度、宽度和可见性等信息。 2.3.2 GameCanvas 类来实现平稳动画 在游戏设计过程中。对 于游戏开
23、发人员比较头痛的问题的。当你用常规的MIDP Canvas类来构建一个具有动画功能的 MIDlet,往往会出现令人讨厌的抖动。这种抖动是因为游戏屏幕在动画图像绘制之前被清除过。也就是动画的图形对象在每次被移动前都进行擦除和重绘。由于擦除和重绘过程都是直接发生在游戏屏幕上的,所以动画看上去就是抖动的。 现在大多数都可以使用一种叫双缓冲的技术来解决和精灵动画相关的抖动问题。在双缓冲技术中,你可以在一个用户不可见的屏幕外绘图表面来进行擦除和重绘操作。当所有的绘图工作完成后,最终的结果再直接绘制到游戏屏幕上。第 5 页 共 25 页 由于所发生的擦除并不可见。最终的结果也就是无抖动的动画。 除了标准的
24、 Canvas 类, MIDP API 还提供了支持双缓冲图形的 GameCanvas类。为了使用 GameCanvas 类的这一优势功能,我们只需要从 GameCanvas 类派生我们的具体的游戏画布,并且像在一个普通 MIDlet 中一样绘制图形。但是,我们所执行的所有绘制实际上是在屏幕外缓冲区进行的。为了让屏幕外的绘制提交到实际的屏幕上,你必须调用 flushGraphisc()方法。 2.3.3 图形坐标 所有图形计算系统使用某种图形坐标系来指定窗口或屏幕上的点的分布 。图形坐标系通常指明系统的原点( 0, 0)、数轴,以及每条轴上数值递增的方向。MIDP 图形依靠一个相似的坐标系来说
25、明如何以及从那里开始绘图操作。因为在MIDlet中所有的绘图都在画布( canvas)中,所以 MIDP的坐标系也同画布有关。MIDP 坐标系的原点在画布的左上角, X 值向右增加, Y 值向下增加。在 MIDP 坐标系中,所有的值都是正整数。 2.3.4 检测对象之间的冲突 冲突检测是确定游戏中的移动物体 是否相互冲突的一种方法。尽管冲突检测对于动画效果的产生并没有起到直接的作用,但 是,它和移动中物体的动画密切相关并且对游 戏至关重要。冲突检测用来确定游戏中移动物体 之间何时会发生物理的相互作用。 在游戏中则是当两个移动物体发生冲撞后,冲突检测就可以用来检测移动物体之间是否冲撞的机制,简单
26、来说就是比较移动物体之间的位置是否发生了重叠。 简单的方法就是比较每个移动物体的矩形边界和所有其他的移动物体 的矩形边界 ,这种方法的效率很高,但是当检测对象不是矩形的时候,由于只是相互之间透明区域重叠而会导致检测认为是边角的重叠引起的冲突 。 对于这种情况的改进方法是将冲突矩形缩小,或者是根据游戏中的移动物体图像数据来检测冲突,该方法实际上就是查看移动 物体的透明区域是否重合或者移动物体图像本身是否重合。 2.4 常用开发工具及其配置与使用 Wireless Toolkit(简称 WTK)是由 Sun 设计的 MIDP 应用程序开发工具,虽然功能不如商业版的 IDE强大,但是对于编译、仿真以
27、及调试而言,算是一个非常实用的工具。 KToolbar 是一个可视化的开发环境,它使你能够通过一个图形用户界面来创建,编辑,打包和测试 J2ME 应用程序。 Wireless Toolkit 开发工具共分为四个部分,分别是功能菜单、快捷按钮、信息输出窗口与仿真器。功能菜单包括四个项目: File、 Edit、 Project 与 Help第 6 页 共 25 页 ( 图 2)。 图 2 J2ME Wireless Toolkit 用户界面 选择“ New Project ”新建一个工程,在弹出对话框中填写工程名和 MIDlet类名,然后弹出另一个对话框,填写相关信息后确认。然后将会生成一个以工
28、程名为名字的文件夹,并包含四个子文件夹,分别是: bin、 lib、 src、 rec。 bin用来存放 JAD 文件、 manifest文件和制作好的 JAR文件; lib用来存放已编译过的类文件; src用来存放源代码文件; rec用来存放图像等资源文件。 将源代码 文件和资源文件分别放入所属文件夹,选择“ Build”将编译源代码,选择“ Run”打开模拟器执行 MIDP应用程序。 3 需求分析与设计方案 3.1 需求分析 足球游戏是当今最火爆最受欢迎的体育赛事 , 在全球范围内也有很多的支持者 。 对于手机游戏的设计相对于动作类的游戏来说,体育类的游戏开发难度小设计也比较简单,并且足球 游戏对手机的要求不高; 设计出来也会相对 简单; 对于大家都熟悉的足球来说上手很容易,能够让玩家们很容易的了解这个游戏的玩法,不用在发一定的时间来熟悉游戏和了解游戏的故事背景 , 在此基础上,选择了体育类游戏作为游戏设计 的基本开发思路。 在游戏的设计中,我们将会设计一位主人公,和四个为了阻碍主人公成功的敌人以及一个足球,游戏中的主人公有四个移动方向,它们分别是上,下,左,右。在游戏开始的时候主人公能够带球移动,并且能够将球踢出去。当主人公把球踢出后在做出移动后,足球就不会在随着玩家的移动而移动了,除非玩家在此碰撞到足球。对于敌人的设计则相对简单点,有三个一般的防守型队员和一个守
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。