基于JAVA的手机游戏软件开发.doc





《基于JAVA的手机游戏软件开发.doc》由会员分享,可在线阅读,更多相关《基于JAVA的手机游戏软件开发.doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、新疆大学毕业论文(设计)题 目: 基于J2ME的 游戏软件开发指导老师: 张振宇 学生姓名: 黄超 所属院系: 信息科学与工程学院 专 业: 计算机科学与技术 班 级: 计算机05-1班 完成日期: 2009年5月15日 摘要过去的两年,移动手持设备领域实现了飞速的发展,并伴随着巨大的变革。在近几年的技术创新中,蓝牙可谓是最为吸引人的应用之一。JSR82的JCP蓝牙规范规范了一个标准的J2ME蓝牙开发平台,以保证开发出来的的程序可以在任何J2ME设备上运行。本文正是利用J2ME开发平台,通过对JSR82的JCP蓝牙规范的深入研究,实现了一个基于蓝牙的联机俄罗斯方块游戏。该软件很好的完成了在蓝牙
2、技术的基础上对数据的接收、传送等功能。并可以在支持JAVA的 中成功使用。关键词:J2ME;蓝牙;NetbeansABSTRACTOver the past two years, the field of mobile handheld devices to achieve a rapid development, and accompanied by huge changes. In recent years, technological innovation, Bluetooth can be one of the most attractive applications. JSR82 B
3、luetooth specification JCP specification of a standard Bluetooth J2ME development platform to ensure that the procedures developed can run on any J2ME device. This article is the use of J2ME development platform, the JCP through JSR82-depth study of the Bluetooth specification, the realization of a
4、Bluetooth-based online game Tetris. The software is very good in the Bluetooth technology was completed on the basis of data reception, transmission and other functions. JAVA can be in support of the successful use of mobile phones.Keywords J2ME;Bluetooth;Netbeans 目录1前言12研究方法22.1 J2ME22.1.1 不同的java版
5、本22.1.2 J2ME22.2 开发平台的搭建32.3 蓝牙技术32.4 JSR82(JABWT)规范43 游戏设计实现53.1 结构设计53.2 系统静态类图53.3 MainMIDlet类63.4 TetrisBlock类93.5 TetrisCanvas类113.6 BuletoothDiscovery类144 结束语20致 谢21参考文献221前言过去的两年,移动手持设备领域实现了飞速的发展,并伴随着巨大的变革。在近几年的技术创新中,蓝牙可谓是最为吸引人的应用之一。由于 无线网络还处于研究阶段,而蓝牙在某种程度上可以认为是对 无线网络的弥补。很多 单机游戏对于喜爱游戏的玩家来说并不具
6、有吸引力。如果可以通过蓝牙技术实现小区域联机游戏。那么,在某种程度上来说,这会成为很多喜欢游戏的消费者的首选,便可以在很大程度上提高 的销量。2 研究方法Java 2分为有3个版本,其中J2ME是一个高度优化的Java运行环境,它专门为那些CPU、内存都非常有限且带宽、屏幕分辨率也很小的无线手持设备而设计。JSR82的JCP蓝牙规范规范了一个标准的J2ME蓝牙开发平台,以保证开发出来的的程序可以在任何J2ME设备上运行。而不必考虑硬件平台和协议栈的不同对应用程序产生的影响。因此,利用JSR82规范可以开发灵活高效的局域网联机游戏。2.1 J2ME 不同的java版本当Sun公司引入Java2后
7、,他们认识到,一个版本是远远不够的。因为运行Java的设备在迅速变革。最终他们将Java2分成了3个版本:l J2SE Java 2 Standard Editionl J2EE Java 2 Enterprise Editionl J2ME Java 2 Micro EditionJ2SE是一个以客户程序为基础的开发平台,它专为PC机用户设计。J2EE是基于服务器程序的一个版本,它支持Servlets, JSP 和 XML。而J2ME是一个精简版的J2SE。每一个版本都为基于JAVA设计的应用程序提供了完整的运行平台,且均含有虚拟机和类。 J2MEJava 2分为3个版本:Java2企业版(
8、J2EE),Java2标准版(J2SE)和Java2微缩版(J2ME)。J2ME是J2SE的一个精简版,它专门为那些CPU和内存容量有限且屏幕分辨率也很低的小型设备而设计。例如PDA,移动 。Java 2微缩版,J2ME,是一个高度优化的Java运行平台。J2ME技术拥有一个庞大的消费空间,它所覆盖的产品范围从最小的日常用品,比如智能卡或是传呼机到机顶盒,或者是一个和电脑能力相差不大的设备。随着便携式嵌入设备的飞速发展,在计算行业出现了一个新的领域,同时也带来了新的开发工具。而现在最理想的灵活的计算和信息环境就是其能够适应不同功能和不同制作方法的设备。迅速发展的移动和嵌入式设备,导致了一个新的
9、计算时代,同时对这种技术也提出了新的要求。最关键的要求是必须有一个共同而灵活的计算和通讯环境,拥有在不同的装置上实现安装的和共享的能力。1999年6月, Sun微系统公司推出J2ME。它专门为那些CPU、内存都非常有限且带宽、屏幕分辨率也很小的无线手持设备而设计。总之J2ME是一个能够使我们在移动设备上实现下载和运行不同应用程序平台,J2ME是一个开放式标准,这意味着任何人都可以使用它,而其他人可以随意的下载这个应用程序。用户将能够根据他们的需求和兴趣实现个性化的设备或是应用。2.2 开发平台的搭建“工欲善其事,必先利其器”,程序员也不例外。本实验使用和Mobility Pack 5.0 配置
10、J2ME开发环境,它们可以显著提高MIDP应用程序的开发效率。安装前先确保计算机上已经正确地安装了J2SDK (Java 2 Software Development Kit),并且可以正常工作。先安装NETBeans IDE中文版,因为NETBeans IDE比较耗费资源,所以建议在较高配置的计算机上使用,然后执行“文件”目录下的“新建项目”命令,弹出“新建项目”对话框,对话框中有5个项目类可提供选择,包括“常规”、“WEB”、“企业”、“NETBeans 插件模块”等。这里并没有用于开发MIDP应用程序的类别,因为还没有安装中文版,它是用于在NETBeans IDE中开发MIDP应用程序的
11、可选插件包。安装完后,可以发现新建项目“类别”中增加了“移动”选项。现在就可以使用NETBeans IDE开发MIDP应用程序了。只需要安装NETBeans IDE 和Mobility Pack 就可以开发MIDP项目,比搭建基于Eclipse和EclipseMe的开发环境,NETBeans IDE 更加简单、友好。2.3 蓝牙技术信息时代最大的特点便是更加方便快速的信息传播,正是基于这一点技术人员也在努力开发更加出色的信息数据传输方式。蓝牙,对于 乃至整个 IT业而言已经不仅仅是一项简单的技术,而是一种概念。当蓝牙联盟信誓旦旦地对未来前景作着美好的憧憬时,整个业界都为之震动。抛开传统连线的束
12、缚,彻底地享受无拘无束的乐趣,蓝牙给予我们的承诺足以让人精神振奋。 蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,利用“蓝牙”技术,能够有效地简化掌上电脑、笔记本电脑和移动 等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网Internet之间的通信,从而使这些现代通信设备与因特网之间的数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。蓝牙网络拓扑分微微网和分散网两种,微微网
13、中有一个设备是主设备,其它设备均为从设备,任何从设备之间的通信必须经过主设备才能够传输。而在分散网中,跨越两个微微网间的设备即可以是主设备,也可以是分设备。2.4 JSR82(JABWT)规范在2002年4月5日,Java靠发社区(JCP)发布了给予J2ME平台的蓝牙API规范JSR82(Java 蓝牙无线技术APIs,Java APIs forBluetooth Wireless Technology)。JSR82规范定义的API中包括21个类及接口。JSR82的最小需求时首先连接设备配置(CLDC),而可靠连接设备配置(CDC)是CLDC的超集,所以JABWT可以同时在CLDC和CDC上实
14、现,即可以在使用任何J2ME profile色上面使用JABWT。JSR82规定了一个标准的J2ME蓝牙开发平台,保证靠发出来的程序可以在任何J2ME设备上运行,而不必考虑硬件平提案和协议栈的不同对应用程序产生的影响。基于JSR82的J2ME蓝牙开发模式不仅提高了开发效率,更是由于JSR82规范通过统一的Java语言平台和标准的蓝牙开发平台,使用支持J2ME和JSR82蓝牙规范的设备可以根据环境动态地下载并执行第三方的蓝牙应用代码。JSR82被设计为支持数据传输,不支持语音传输;在核心协议中支持L2CAP、RFCOMM、SDP和OBEX。JSR82规范的API均以类或接口形式定义,总共定义了1
15、2个类和9个接口。其中javax.bluetooth定义9各类和4个接口;javax.obex定义其余3个类和5个接口。它从便于开发的角度将所规定的API分为设备/服务发现(Disvovery)、通信(Communicatiuon)和设备管理(DeviceManagement)3大类。发现类包括设备发现、服务发现和服务注册的类或接口;通信类包括在串行剖面层次、RFCOMM层次、L2CAP层次和OBEX层次建立连接和使用连接的类或接口;设备管理类包括代表控制和管理的类或接口。基于JSR82的协议栈如下图,灰色部分为JSR82规范提供给Java平台开发者的蓝牙软件栈。 基于蓝牙的应用和程序JABW
16、T(JSR82)服务发现协议(SDP)串口仿真协议(RFCOMM)对象交换协议(OBEX)逻辑链路与适配协议(L2CAP)主机控制器接口(HCI)蓝牙无线电(Bluetooth Radio)基带与链路管理协议(Basedband & Link Mangaer Protocol) 图2-1 基于JSR82的协议栈3 游戏设计实现3.1 结构设计 因为是联机游戏,为了区分变量,故在程序种定义了两组类成员变量和常量,类中除共享成员变量外,变量均需要定义本地玩家和远端玩家两份。蓝牙联网俄罗斯方块游戏初始化过程时序图如下图所示:DiscSelectlMainMIDletlMasterThreadSlav
17、eThreadCanvas1Canvas2图3-1 蓝牙联网俄罗斯方块初始化过程时序图3.2 系统静态类图本设计中用到了很多的类,例如:BluetoothConnection类、BluetoothDiscovery类、ErrorScreen类、MasterSlaveSelect类、MasterThread类、Role类等等。该游戏项目主要分为两大模块:(1) 基于JSR82的设备与服务的发现和建立连接(2) 根据自身玩家和远端玩家的状态来决定屏幕的绘制。Game.buletooth包中主要是BuletoothConnection类和BuletoothDiscovery类。BuletoothDi
18、scovery类提供了一个封装后的API,提供了简单的接口惊醒蓝牙设备及服务的发现,而BuletoothConnection类封装了建立连接后的I/O流。Game.tetris包种主要的类是TetrisCanvas、TetrisBlock类。TetrisCanvas类封装了游戏逻辑,TetrisMap类中保存的是游戏地图中的数据,TerisBlock类中定义了7种方块及方块的绘制方法。这些类之间的关系可用图3-2表示。MainMIDletTetrisMapMasterSlaveSelectBluetoothConnectiontBluetoothDiscoverTetrisBlockTetri
19、sCanvas+run()()SingleThread+commandAction()MasterThread+commandAction() Serialization 图3-2 俄罗斯方块游戏中的类关系图3.3 MainMIDlet类 MainMIDlet类派生自MIDlet,并实现在CommandListener接口,是该J2ME程序的入口类。该类主要提供了如下功能:(1) 使用LocalDevice.getLocalDevice().getFriendlyName()可获得本地设备的好友名称,在后面建立连接时使用。(2) 引导程序进入玩家角色选择界面(Master/SlaveThrea
20、d),由玩家选择是作为蓝牙联机的主/从设备还是进行单机游戏。(3) 实现pauseApp()、startApp()、destroyApp( boolean unconditional )方法,进行程序生命周期控制。 MainMIDlet类比较简单,源代码如下所示:package game.tetris;etooth.*;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import javax.bluetooth.*;public class MainMIDlet extends MIDlet implem
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 JAVA 手机 游戏软件 开发

限制150内