基于Java的手机游戏开发与设计.doc_第1页
基于Java的手机游戏开发与设计.doc_第2页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

基于 java 的手机游戏开发与设计 摘 要 在信息技术飞速发展的今天,随着的手机日益普及,手机游戏也成 了人们生活中不可缺少的一部分。java 在移动设备上的功能实现也越来越具 影响力,为丰富人们的生活,提供服务等方面提供了诸多方便。本文主要介 绍一款基于 java 语言开发的手机游戏贪吃蛇,该设计主要是应用 j2me 技术,结合 jdk 1.6.0,使用 ide eclipse 3.4 与 eclipseme1.7.9 作为开发工具, 以 sun j2me wireless tool kit 2.5.2 软件作为模拟测试工具的综合性的开发 设计。本设计主要是对手机游戏的开发过程的各个环节做了详细的介绍,其 中包括:手机游戏开发平台的搭建与测试、具体设计及开发步骤、软件测试 运行与打包生成等,实现了经典游戏贪吃蛇的手机嵌入,以便满足一些 手机用户的娱乐需求。 关键字 j2me wtk eclipse abstract in the day of rapid development of information technology, with the growing popularity of mobile phone, mobile games also become the indispensable part in daily life. java in the function realization of the mobile device is also more and more influential for rich peoples life and providing services offered many convenient. this paper mainly introduces a mobile game snake of java language development. this design is a comprehensive development design,which mainly applied 1.6.0 jdk j2me technology, combined with the eclipse, use ide eclipseme1.7.9 as 3.4 development tool, tool kit to 2.5.2 from j2me wireless software as simulation test tools. this design is mainly to the mobile games every parts of the development process are described in detail, including: the cellular phone game development platform and testing, specific design and development steps, software test, operation and packaged generation. realize the classic game - snake phone embedded, in order to meet some cell phone users entertainment demand. key words: :j2me,wtk,eclipse 目 录 1、绪论 1 2、手机游戏介绍 2 21、手机游戏现状.2 22、手机游戏分类.2 3、程序开发语言介绍 4 3.1、j2me 简介 .4 3.2、j2me 程序开发流程 .4 3.3、java语言的特点5 4、开发环境及相关技术介绍 7 4.1、开发环境7 4.2、关于 jdk 7 4.3、关于 wtk 8 4.4、关于 eclipse与 eclipseme.9 5、游戏的具体实现和程序分析 .11 5.1、游戏工程及程序的建立.11 5.2、手机中的坐标系.13 5.3、游戏的具体实现环节.14 5.4、具体编程的实现.15 6、结论 .28 参考文献 29 答 谢 .30 1绪论 任何游戏在设计之初,所面向的目标群体的定位都不尽相同,自然的 影响游戏设计的动机也会不同,受到游戏设计导向和动机的影响,任务的 设计目的大体可分为:提升游戏娱乐性、使玩家压抑释放、获得心里满足、 同时也可视为一种赚钱的手段。随着 3g 技术的普及和应用,基于 java 的 开发软件在手机上的使用非常的广泛,手机增值服务的内容也是越来越多, 对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。 在这个信息社会中,随着信息网络化的不断进展,手机游戏越来越多 的走进人们的工作和生活。其中现在游戏开发的主流技术包括:基于嵌入 式游戏开发与设计、基于 java 游戏开发与设计、基于 brew 游戏开发与设 计等。其中随着 3g 技术的飞速发展,java 手机游戏具有更大的市场优势。 本设计通过查阅相关书籍,研究手机游戏开发与设计的整体设计流程 及设计思路、学习并使用 java 语言进行程序的编写及运行调试,完成基于 java 语言的手机游戏的开发与设计。 2手机游戏 21.手机游戏现状 在信息和网络高速发展的今天,手机已经成为不可或缺的通讯工具, 它的普及速度之快,让人瞠目,在短短的几年间,手机及其它无线设备已 经走进了普通百姓的工作和生活。众所周知,手机的规模越来越壮大、功 能也越来越强大,而游戏也已成为手机上不可缺少的功能,目前,手机游 戏业正在以良好的发展前景飞快发展着,而且将进入一个高利润的稳定增 长期。 22.手机游戏分类12 随着信息技术的飞速发展,手机游戏的逐渐的多样化,具体分类归纳 如下表所示: 短信游戏 文字类游戏 wap 浏览器游戏 嵌入式游戏 java 游戏 brew 游戏 游戏形式 图形类游戏 uni-java 游戏 纯文字手机游戏 2d 手机游戏画面形式 3d 手机游戏 表 手机游戏分类列表 短信游戏:玩家和游戏服务商通过短信中文字的内容来交流,达到游 戏目的的一种文字游戏。一般玩家通过回复短信的形式来进行游戏,游戏 单调、枯燥无味。 wap 浏览器游戏:通过手机上网,使用浏览器浏览网页来进行的一种文 字游戏,玩家根据 wap 浏览器浏览到的页面上的提示,以选择不同的选项 的方法来进行游戏,游戏不够直观、单调无趣。 嵌入式游戏:将游戏程序预先固化到手机中的一种图形类游戏,其中 固化过程在手机出厂前就已经完成。因此这种手机游戏不能进行任何修改 或删除操作。 java 游戏:java 是一种 sun 微系统公司所发展出来的程序语言,它具 有很多有利于手机游戏开发的性质,例如封装性、安全性等,便于手机游 戏的开发与设计,而且目前在手机上应用最多的就是 java 游戏。 brew 游戏:和 java 类似,brew 也是一种程序语言,brew (binary runtime environment for wireless)即无线二进制运行环境,brew 游戏的 一主要特点就是可以扩充容量。 uni-java 游戏:中国联通刚刚为其手机准备的一个新的通用开发平台。 uni-java 可以让中国联通的手机也支持并运行 java 程序,同时也支持一 些 java 游戏。目前已经有相当数量的厂商开始进入 uni-java 手机游戏开 发的领域。 2d 手机游戏:采用图形类的手机游戏,其中手机游戏界面为二维图像。 3d 手机游戏:延续 2d 手机游戏继续发展,手机游戏界面也由二维图像 发展为三维图像,给玩家以更好的视觉效果,使游戏更具娱乐性。 3.程序开发语言 3 3.1.j2me j2me 是 sun 公司推出的针对嵌入式消费类电子产品的开发平台,j2me 与 j2se 和 j2ee 共同组成 java 技术的三个重要的分支。其中 j2me 的一个 关键优点是,j2me 与所有支持 java 的设备都是兼容的。目前,j2me 中有 两个最主要的配置,分别是连接有限设备配置 cldc(connected limited devices configuration)和;连接设备配置 cdc(connected devices configuration) 。 3.2.j2me 程序开发流程 3.2.1.编译 编译就是把所编制的*.java 文件,编译成二进制的*.class 文件。 java.exe 是由 sun 公司编写的一个编译器,它可以把*.java 文件成为 *.class 文件。其中,如果一个*.java 文件中定义了多个类,它就将被编 译成多个*.class 文件。 3.2.2.混淆(可选) 由于 class 文件格式透明的缘故,java 文件很容易被反编译。因此, 如果不希望别人掌握你的源代码的话,就一定要进行混淆(obfuscate) 。 所谓混淆,就是利用工具,将方法各类名改成没有实际意义的特定的字符 及代号,增加阅读的难度。这样做的目的是为了更充分的保护了自己的知 识产权,而且混淆器还可以减少程序的大小。混淆器一般都是由第三方软 件开发商提供的,许多都是开源的,可以免费使用。 3.2.3.预审核 在完成编译后,必须对*.class 文件进行预审核,因为 class 在传输过 程中容易损坏或是被篡改,且手机的资源有限,所以在手机上审核一般比 较困难。因此为了使我们在手机上进行的审核工作量减少。我们在 pc 机上 进行一部分预审核工作。 3.2.4.打包 midp 可执行文件后缀名为 jar。后缀为 jad 的文件是 jar 文件的描述 文件。 在仿真器或手机上安装运行有了 jar 及 jad 文件后,就可以把它们放 到仿真器或手机上运行了。至于如何把它们放到手机上,根据手机的功能 不同,可有如下几种方法:使用数据线,将 pc 与手机相连,下载文件;使 用红外线;使用蓝牙;使用 ota 空中下载(利用短信/wap) 。 3.3.java 语言的特点4 3.3.1.平台独立性 要使应用软件在网络中的任意一台电脑中都能够正常运行,就必须使 得软件具有平台独立性。软件的平台独立性一直以来都是软件发展的需求 及开发者所追求的首要目标,而 java 正是一款具有平台独立性的编程语言, 在源程序级保证了其基本数据类型与平台的无关,使得 java 程序可以在世 界范围内共享,为程序的编译和解读提供了很大的方便性。 3.3.2.面向对象 面向对象的软件编程技术是当今软件开发行业中最常用的一种技术, java 正是一款面向对象的编程开发软件。它使用一种被称为“类(class) ” 的软件对象,代码可以重复使用和可以扩展,使得程序开发变得容易许多。 具体来说,面向对象性包括以下三个特点: 封装性:java 提供了类机制,以类对象为基本组成单元,对象中封装 了状态变量和方法。java 的封装性很好的体现了模块化和信息隐蔽等良好 的程序设计思想。 继承性:java 编程语言中最重要的数据类型是类,它提供了单继承机 制。为了解决多继承的问题和克服了多继承的复杂性,java 引进接口 (interface)的概念,进而使得 java 程序更容易被扩展和使用。 多态性:java 语言通过方法的重载和覆盖实现多态性。方法重载是指 一个类中可以有多个名字相同,但参数类型不同的方法。方法覆盖是指在 继承的过程中,子类可以重新定义父类的某种方法,实现自己需要的功能。 3.3.3.安全性 作为 web 编程语言的一种,java 具有良好的安全结构和安全策略。代 码在编译的过程中接受多层的安全检查。在实现安全性方面,主要采取的 措施包括:取消指针操作、内存管理自动化、提供多网络软件协议的用户 接口等。 3.3.4.多线程 通过多线程运行机制,java 支持多任务和并行处理。也就是说,java 可以同时处理多个执行线程。java 编程语言的多线程行,极大改善了 cpu 的吞吐量、响应时间等性能指标。 3.3.5.分布式 java 中包括了一个支持 http 和 ftp 协议传送和接收信息的库函数,因 此可以通过 url 地址在网络上很方便地访问其它对象,其访问方式与访问 本地文件系统几乎完全相同。 4.开发环境及相关技术介绍5 4.1.开发环境 操作系统:microsoft windows xp 程序语言:java 2 开 发 包:java(tm) 2 standard edition (5.0) sun j2me wireless tool kit 2.5.2 jdk 1.6.0 ide: eclipse 3.4 eclipseme1.7.9 4.2.jdk 4.2.1.jdk 简介 jdk 是 java 开发工具包(java development kit)的缩写,它是一切 java 应用程序的基础,是整个 java 的核心。j2me 是 java 语言的一种,所 以在安装 j2me 开发工具之前,就必须先安装 jdk。 4.2.2.jdk 的安装 下载 jdk,使用版本为 jdk5.1,默认安装路径安装。 4.2.3.jdk 的配置 配置环境变量,具体变量及其变量值如下表所示: 变量名变量值 java_homec:program filesjavajdk1.6.0_10; pathc:program filesjavajdk1.6.0_10bin; classpathc:programfilesjavajdk1.6.0_10lib; c:programfilesjavajdk1.6.0_10libtools.jar; 表 jdk 中变量配置列表 4.2.4.jdk 测试 在 dos 模拟窗口中输入“java -version” ,得到如下图所示,即安装 jdk 成功。 图 测试 jdk 4.3.wtk 4.3.1.wtk 简介 wtk 的全称是 sun j2me wireless toolkitsun 公司提供的无线开 发工具。此工具包是为了帮助开发人员简化 j2me 的开发过程而设计的,该 工具包包含了完整的生成工具、实用程序及设备仿真器。wtk 不需要多余的 配置,对各种模拟器可以说是即插即用,而且在 wtk 下的程序目录简洁明 了、方便查询。目前各大手机厂商往往把 wtk 经过自身的简化与改装,推 出适合自身产品。 4.3.2.wtk 的安装 下载 wtk,使用版本为 wtk 2.5.2,默认安装路径安装。 4.3.3.wtk 测试 运行“sun java(tm) wireless toolkit 2.5.2 for cldc” ,弹出如下 图所示界面证明 wtk 安装成功。 图 4.4.eclipse 与 eclipseme 4.4.1.eclipse 与 eclipseme 简介 eclipse 是一个开发源代码的、基于 java 的可扩展的开发平台。 eclipse 最大的一个特点就是它是完全免费的,是一种可扩展的开放源代码 ide。在 eclipse 中几乎每样东西都是插件,且各种插件都为我们提供开发 程序的各种功能。同时各个领域的开发人员通过开发插件,可以构建与 eclipse 环境无缝集成的工具。 eclipseme 为 eclipse 的一个插件,致力于帮助开发者开发 j2me 应用 程序。eclipseme 并不为开发者提供无线设备模拟器,而将各手机厂商的实 用模拟器紧密连接到 eclipse 开发环境中,为开发者提供一种无缝统一的 集成开发环境。 4.4.2.eclipse 与 eclipseme 的安装 下载 eclips,使用版本为 eclipse 3.4,默认安装路径安装。 下载 eclipseme,使用版本为 eclipseme1.7.9,默认安装路径安装。 4.5.wtk 与 eclipseme 的绑定 将 wtk 绑定到 eclipseme,会大大提高开发者的工作效率。 启动 eclipse,选择“windows”菜单,再选择“preferernces” ,在对 话框中选择“j2me”选项,再选择“device management”选项,单击 “import”按钮,在安装了 wtk 2.5.2 的路径下,选择 wtk 2.5.2 文件夹, 再单击“refresh”按钮,这是“devices”列表中就会列出所有模拟设备, 如下图所示,即 wtk 与 eclipseme 的绑定成功。 图 5.游戏的开发与实现 5.1.游戏工程及程序的建立 5.1.1.建立新的工程文件 运行 eclipse 软件,新建工程 “j2me midlet suite” ,如下图所示, 其中,设置项目的运行环境如下图所示,游戏的工程建立完成。 图 图 5.1.2.新建主程序文件 在工程文件夹,新建主程序“j2me midlet” ,如下图所示,游戏的 主程序建立完成。 图 5.1.3.向主程序内添加类 方法一:鼠标右击工程文件夹,依次选择菜单项“new” “class” , 将类命名为“snakecanvas” ,单击“finish”按钮,完成类的加载。 方法二:主程序编写完成时,在主程序中调用的类名“snakecanvas” 下有红色下划线,说明该类没有被添加到工程中。用鼠标单击类名 “snakecanvas” ,在出现的下拉菜单中点击“create class snakecanvas ” ,如下图所示,则完成类“snakecanvas”的加载。 图 5.2.手机中的坐标系 手机中的 xy 坐标系与普通的 xy 坐标系有所不同,手机中,以屏幕的左上 角为原点,水平方向为 x 轴,垂直方向为 y 轴,如下图所示: x y 0 y 0 x 普通 xy 坐标系手机中的 xy 坐标系 图 5.3.游戏的具体实现环节 数据的初始化; 变量的定义及赋值; 设置屏幕背景颜色为粉红色; 设置画笔颜色为红色,并绘制贪吃蛇蛇身及食物; 食物的产生及其产生位置的限制条件; 蛇身的移动; 手机按键功能实现; 达到游戏结束条件时,游戏结束; 游戏的运行与调试 游戏的模拟实现; 游戏的打包生成; .jad 及.jar 文件的生成 5.4.具体编程的实现 5.4.1.主程序的编写及功能实现 /系统导入相应的包,其中有自动加载的,也有手动导入的部分。具 体导入包的情况,要依据程序中所用到的类的种类。 import javax.microedition.lcdui.display; import javax.microedition.midlet.midlet; / mymidlet 类的具体实现 public class mymidlet extends midlet /实现两个 canvas 类之间的切换 snakecanvas displayable = new snakecanvas(); public mymidlet() / 获得当前 midlet 的 display 对象,并设置 snakecanvas 对象为当 前的显示对象 display.getdisplay(this).setcurrent(displayable); /系统自动生成代码,本程序中默认其初始状态 public void startapp() public void pauseapp() public void destroyapp(boolean unconditional) 5.4.2.变量的定义及赋值 public class snakecanvas extends canvas implements runnable 定义贪吃蛇节点坐标:其中第二维下标为 0 的代表 x 坐标,第二维下 标是 1 的代表 y 坐标。 int snake = new int2002; 定义已经使用的节点数量。 int snakenum; 贪吃蛇运动方向。 0 代表向上,1 代表向下,2 代表向左,3 代表向右 (其中方向的控制 变量依据手机开发平台的不同而不同,例如:nokia 手机开发平台中,-1 表示向上、-2 表示向下、-3 表示向左、-4 表示向右。这里所用的为 sun java(tm) wireless toolkit 2.5.2)。 int point; /向上 private final int key_up = 0; /向下 private final int key_down = 1; /向左 private final int key_left = 2; /向右 private final int key_right = 3; 定义游戏区域宽度。 int width, height; 定义蛇身单元宽度。 private final byte snakewidth = 10; 利用布尔类定义状态: 是否处于暂停状态,true 代表暂停; boolean ispaused = false; 是否处于运行状态,true 代表运行。 boolean isrun = true; 定义食物的 x 坐标及 y 坐标。 int foodx, foody; 5.4.3.数据的初始化 初始化开始数据。 private void init() ; 初始化屏幕大小。 public snakecanvas() init(); width = getwidth();/设置游戏界面,宽度为屏幕宽度 height = getheight();/高度为屏幕高度 new thread(this).start(); 初始化节点数量。 snakenum = 7; 初始化节点数据。 for (int i = 0; i 0; i-) snakei0 = snakei - 10; snakei1 = snakei - 11; 第一个单元格移动 switch (point) case key_up: snake01 = snake01 - snakewidth; break; case key_down: snake01 = snake01 + snakewidth; break; case key_left: snake00 = snake00 - snakewidth; break; case key_right: snake00 = snake00 + snakewidth; break; 5.4.8.手机按键功能实现 其中用手机键盘中的上、下、左、右键来控制贪吃蛇的移动,用中间 键来控制实现暂停功能。程序最后增加了 repaint(),即刷屏功能,用来更 新游戏数据。 public void keypressed(int keycode) int action = getgameaction(keycode); switch (action) case up: point = key_up; break; case down: point = key_down; break; case left: point = key_left; break; case right: point = key_right; break; case fire: ispaused = !ispaused; break; repaint(); 5.4.9.游戏结束 判断游戏是否结束 结束条件:蛇头超出边界或蛇头碰到自身 private boolean gameover() ; 边界判别 if (snake00 (width - snakewidth) | snake01 (height - snakewidth) return true; 碰到自身 for (int i = 4; i snakenum; i+) if (snake00 = snakei0 return false; 5.4.10.游戏的运行与调试 游戏程序编辑完成并保存,鼠标右键点击主程序,依次选择菜单项 “run as”“run configurations” ,在弹出的运行对话框中,双击 “wireless toolkit emulator” ,再选择“new_configuration” ,并分别 选择 project“mygame”与 midlet“mymidlet” ,如下图所示: 图 其中 emulation 的配置如下图所示: 图 单击“run”按钮,运行模拟器。 5.4.11.游戏的模拟实现 运行模拟器,实现游戏结果的模拟,如下图所示: 图 5.4.12.游戏的打包生成 首先设置 cldc 与 midp 的版本,在 project“mygame”列表中双击 “mygame.jad”文件,出现如下图所示 cldc 与 midp 的版本配置窗口: 图 鼠标右键点击 project“mygame” ,依次选择菜单项“j2me” “create package”,打包完成。 5.4.13jad 及.jar 文件的生成 打包完成后,在 eclipse 软件的默认工作路径的“workspacemygame deployed”子目录中找到“mygame.jar” 、 “ mygame.jad”两个文件。在 eclipse 平台的 project“mygame”列表中也相应的增加了这两个文件,如 下图所示: 图 打包完成后,只需将“mygame.jar” 、 “ mygame.jad”这两个文件拷贝 到手机里,这款手机游戏就可以在手机里运行了。 6.结论 本次毕业设计通过应用 j2me 技术,结合 jdk 1

温馨提示

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

评论

0/150

提交评论