




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南 京 晓 庄 学 院手机游戏开发技术报告贪吃蛇游戏开发与实现所在院(系): 数学与信息技术学院学 号 :XXXXXXX 学生姓名 :XX年级专业 : 08计算机科学与技术指导教师 : XXX 提交日期 : 2011 年 11 月第一章、开发平台与技术概述51.1开发环境51.2 WTK、ECLIPSE与JAM的介绍5(1)WTK5(2)Eclipse51.3 JAVA语言介绍6(1)面向对象6(2)平台无关性6(3)分布式6(4)可靠性和安全性6(5)多线程6第二章 J2ME及其体系结构概述72.2体系结构72.3 移动信息设备简表概述7第三章 手机游戏开发过程93.2 详细设计93.2.1 代码设计10第四章 程序的调试与运行144.2 游戏的运行环境16第五章 总结17致 谢18参考文献19摘要随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注。以J2ME为开发平台,利用Java提供强大工具,不但可以在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种手机游戏。本文在介绍J2ME及其体系结构的基础上,以贪吃蛇游戏为实例,描述了借助J2ME的MIDlet类库开发手机游戏的过程。本次论文重点在于J2ME技术的应用,通过对手机游戏开发和MIDP 2.0的研究,开发了一款操作简单,并有一定可玩性的手机空中射击游戏。在游戏中玩家可以通过手机的方向键控制己方飞机的移动,己方飞机自动发射子弹。敌方飞机按照预定程序移动并自动发射子弹。当我方飞机发射子弹打中敌方飞机,敌方飞机爆炸,同理,敌方飞机发射子弹打中我方飞机时我方飞机爆炸。当双方飞机相撞时都爆炸。关键词 J2ME,手机游戏,MIDP,SPRITE,永久性数据AbstractAlong with the development of mobile communication technology and the popularization of mobile games development technology for people place more and more close Note. In J2ME for development platform, and use Java provide a powerful tool, not only on the mobile phone can realize the static HTML technology is unable to computing processing, data storage, the servers and communications, and other functions, but also to the development of mobile games. This paper introduces the system structure of the J2ME and its foundation, takes the snake game, for example, a description of the J2ME MIDlet class library with the development process of mobile games. This paper emphasis is on J2ME technology application, through to the cell phone game development and MIDP 2.0 research, developed a simple operation, and a certain can play sex of mobile phone air shooting game. In the game, the player can through the phones the direction key control our plane movement while the plane to be automatic fire bullets. The enemy plane are set to move and automatic program fire bullets. When our plane hit the enemy bullets, enemy aircraft explosion, by the same token, the enemy fire bullets hit our plane exploded when our plane. When both sides are explosion when plane collided. Key words J2ME, mobile games, MIDP, SPRITE, permanent data 第一章、开发平台与技术概述 1.1开发环境 操作系统:Microsoft Windows XP 程序语言:Java 2 开发包:Sun Java(TM) Wireless Toolkit 2.5.2 for CLDC IDE:Eclipse 3.2 1.2 WTK、ECLIPSE与JAM的介绍(1)WTK Wtk的全称是Sun J2ME Wireless Toolkit Sun的无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。使用其中的工具可以开发与 Java Technology for the Wireless Industry (JTWI, JSR 185) 规范兼容的设备上运行的j2me 应用程序。该工具箱包含了完整的生成工具、实用程序以及设备仿真器。到本文写作时为止可以获取有四个版本,分别是1.0.4, 2.0, 2.1和2.2。每个版本都包括英语,日语,简体中文,繁体中文4个语种包。WTK是Sun提供的一个开发工具包。目前各大手机厂商往往把WTK经过自身的简化与改装,推出适合自身产品,如SonyEricsson,Nokia Developers suit等,都属于此种类型;而通过JBuilder, Eclipse等IDE,J2ME开发包工具可以被绑定在这些集成开发环境中,进一步提高开发效率。(2)Eclipse Eclipse是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。1.3 JAVA语言介绍(1)面向对象 面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。(2)平台无关性 Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C+具有一定程度的源代码级平台无关,表明用C或C+写的应用程序不用修改只需重新编译就可以在不同平台上运行。(3)分布式 分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。(4)可靠性和安全性 Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C+,但它消除了许多C+不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。(5)多线程 线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。第二章 J2ME及其体系结构概述2.1 J2ME简介和 现在JAVA-JAVA2 Platform大致可分为J2SE、J2EE、J2ME三类。J2SE为JAVA-JAVA2 Platform 的标准版,通常在PC上使用的JAVA。J2EE是在J2SE的API上,扩展了给企业使用EJB与Servlet等主要使用在服务器上的功能。而J2ME则是面向家电和通信工具等微小设备。J2ME的目标是微小设备,这类设备有许多种类,在这些设备的J2ME当中,定义了CDC(Connected Device Configuration),CLDC(Connected Limited Device Configuration)这两个Configuration。CDC是以能用在个人网关、下一代移动电话、PDA(个人数字助理)、家电设备、POS终端、车辆导航系统等上运行为前提设计出来的。CLDC,是以能使用在移动电话、PDA(个人数字助理)、家电设备、POS终端等上面为前提设计出来的。2.2体系结构配置和简表:配置定义了一个设计在一系列类似硬件上运行的Java平台的能力。J2me的目标是家电与嵌入式设备,这类设备有很多种类,对应这些设备的J2me当中,定义了CDC(连接设备配置)和CLDC(受限接设备配置)两个配置,配置所提供的类函数只有Java.lang, Java.io,Java.util包等J2SE等核心类的子集。CLDC是与手机相关的,它实际是定义一个设备制造商用来实现Java运行环境的标准,第三方开发者只需要遵循这个标准。CLDC主要影响Java开发和软件发布的以下方面:1)目标设备的特性;CLDC是与手机相关的,它实际是定义一个设备制造商用来实现Java运行环境的标准,第三方开发者只需要遵循这个标准。2)安全模型;安全模型有两个部分:虚拟机和应用程序安全。虚拟机安全层的目的是保护下面的设备不受任何执行代码可能引起的损害。2.3 移动信息设备简表概述2.3.1 MIDP的目标硬件环境1)显示 :96*54象素,1位颜色,大约1:1比例;2)输入: (a)单手键盘或者小键盘;(b)双手的QWERTV键盘;(c)触摸屏; 3)内存: (a)128KB非易失性内存,供MIDP组件使用;(b)8KB的非易失性内存,供应用程序生成的永久数据使用;(c)32KB的易失性内存,供Java堆使用。4)网络: (a)双响无线网络,可间歇性连接;(b)通常是很有限的带宽。2.3.2 MIDP应用程序 在MIDP上运行的Java程序被称为MIDlet。MIDlet是服从一些关于它运行环境和程序打包的一些规则。其运行环境是启动MIDlet,这是设备内置应用管理器的任务。应用程序能访问到下面的一些资源:(1)震动文件中的所有文件。(2)MIDlet描叙文件的内容(JAD)。2.3.3 CLDC和MIDP库中的类 打包:MIDlet应用一般采用震动文件的形式。这个文件应该包含运行应用程序需要的类和所有的资源文件,它也应该包含一个叫manifest.mf的清单文件。保存在震动文件中的清单文件是一个简单的文本文件,包含属性值。 应用程序描叙(JADs)在移动电话网络上传送大量的数据,需要有一个描叙文件让用户在没有下载整个包之前来查看一下MIDlet震动的细节。第三章 手机游戏开发过程3.1 贪吃蛇游戏的规则简介贪吃蛇游戏的规则简介在贪吃蛇游戏中,玩家操作由小方块连接而成的蛇,去吃随机散落在画面内的小方块,每吃一块就增加一小方块长度,要是撞壁以及撞自己的尾,就属于失败,如无失败则直到通关为止。 屏幕的长度的行向为11单位,纵向为18单位。在这个范围内,玩家通过操作方向键来控制蛇的运动方向。该游戏的最大特色是屏幕自适应,无论各种手机,PDA的屏幕大小如何,该游戏总是能获得最佳的显示效果。3.2 详细设计本游戏的操作流程:用户在启动MIDlet后,即进入游戏主画面,屏幕开始显示为欢迎画面。用户按下启动按钮后,就可以开始玩游戏。当用户想暂停时,再次按一下启动按钮开始,游戏就暂停了,在暂停的情况下再按开始按钮,游戏继续运行。任何时候按EXIT按钮退出,游戏MIDlet都会终止。 图:游戏流程转换过程3.2.1 代码设计 (1)游戏地图代码设计 游戏地图是蛇的活动范围和食物随机散落的范围,游戏的容器为行向为11单位,纵向为18单位,如下代码:private final int iX = 10;/地图的开始坐标 private final int iY = 10;/private final int SWIDTH = 16;/图标的宽度 private final int iCells = 240;/地图的列数 private final int iRows = 320;/地图的行数 private final int iBoxW = SWIDTH*iCells;/地图的宽采用二维绘图工具:二维绘图工具drawLine采用4个参数直线起点的x、y坐标值和直线终点x、y的坐标值,例如:graphics.drawLine(50,0,100,0);这行代码会从位置(50,0)到(100,0)绘制一条直线。绘制一个矩形是一个类似的过程,不同的只是需要用起点加上宽度和高度的方式来指定这个对象。可以绘制透明的或者填充的矩形,甚至可以绘制圆角的矩形。4个绘制矩形的方法是:drawRect、drawRoundedRect、fillRect和fillRoundedRect。(2)贪吃蛇和食物的代码设计屏幕的长度为行向为320单位,纵向为240单位;在这个范围内,玩家操作方向键控制蛇的运动方向。该游戏的最大特色是屏幕自适应,无论各种手机,PDA的屏幕大小如何,该游戏总是能获得最佳的显示效果。贪吃蛇最初由10个小正方形组成,小正方形是蛇的身体和游戏容器的组成部分。食物也由一块小正方形组成,并且随机散落在游戏框图的区域内,每次只出现唯一的一个,待玩家操作游戏完成一个任务后面,再出现下个食物,小蛇每吃一个食物就增加一个长度。实现代码如下:public int getCell()return iCell;public int getRow()return iRow; public void show() sLabel.setVisible(true); public boolean isVisible() return sLabel.isVisible(); public void hide() sLabel.setVisible(false); protected void setPosition(int row, int cell)iCell = cell;iRow = row; sLabel.setBounds(cell*SWIDTH, row*SWIDTH, SWIDTH, SWIDTH); public void moveUp()if(iRow0)setPosition(-iRow,iCell);elsesetTouch();public void moveDown()if(iRow0)setPosition(iRow,-iCell);elsesetTouch();public void moveRight()if(iCelliBoxW-1)setPosition(iRow,+iCell);elsesetTouch();static boolean getTouch()return isTouch;static void setTouch()isTouch = true;static void setImTouch()isTouch = false;public Snake clone()Snake tem = new Snake();tem.setPosition(this.getRow(),this.getCell();return tem;(3)操作控制代码设计MIDP的游戏设计,本质上就是用一个线程或者定时器产生重绘事件,用线程和用户输入改变游戏状态。这个游戏也不例外,启动MIDlet后,就立即生成一个重绘线程,该线程每隔50ms绘制一次屏幕。当然,重绘时有一些优化措施,并不是屏幕上所有的像素都需要重绘,而是有所选择,比如游戏画布上那些已经固定下来的就不需重绘。游戏画布是一个CommandListener,可以接受用户键盘命令,控制蛇的左移,右移,下移,上移。其代码如下:public void move()hide();if(aoSnakes0.getRow()=Food.getRow()&aoSnakes0.getCell()=Food.getCell()eat();Snake tempSnakes = new SnakeiLen-1;for(int i=0;itempSnakes.length;i+)tempSnakesi = aoSnakesi.clone();switch(heading)case 37:aoSnakes0.moveLeft();break;case 38:aoSnakes0.moveUp();break;case 39:aoSnakes0.moveRight();break;case 40:aoSnakes0.moveDown();break;default:break;整个游戏的流程控制体现在游戏画布对象的paint()方法里。paint()根据当前的游戏状态,绘制出当时的游戏画面。欢迎画面和Game Over画面的绘制相当简单,游戏暂停画面的绘制也相当容易,就是设立标志,让paint()执行的时候无需真正执行重绘动作。第四章 程序的调试与运行4.1游戏的调试 在手机游戏方面,游戏的控制和图片的设置是游戏的基本能力,为了方便玩家操作游戏,把玩家常用的操作键设为游戏最常用的控制键,并通过J2ME简单有效的编码,使玩家可以重新设置自己的熟悉的键。本游戏不设立关卡,而是随着游戏积分的增加,游戏将自动增加游戏的难度,如加快游戏速度和随小蛇长度的增加,游戏的操作难度也会增大。如玩家进入游戏(如下图),操作小蛇, 图:游戏界面图去吃随机散落在游戏区内的食物,每吃一个食物就增加小蛇一个单位长度,并随着长度的增加,游戏的速度将增加,而小蛇的长度增加也会增加玩家的操作难度。如果玩家操作小蛇碰壁或者由于小蛇长度太长而蛇头撞到小蛇的身体任何部位,均属于失败,玩家得重新游戏开始(如下图)。但游戏将自动纪录你的得分,并且保存你的游戏最高得分。图:游戏失败的两种情况4.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力政策
- 人教高中物理必修三第九章静电场及其应用第一节电荷教学设计教案2份
- 2025届湖南省长沙市大附中博才实验中学数学七下期末综合测试模拟试题含解析
- 肌纤维瘤的临床护理
- 北师大版六年级数学下册反比例的意义教学设计
- 服装销售总结模版
- 医院护士面试试题及答案
- 一级消防试题及答案案例
- 2025年苏教版数学五年级下册期末检测题及答案(一)
- 美妆品牌购物中心美妆专区综合委托经营合作协议
- 生产交接班记录表
- 《活着》作品简介名著导读PPT
- 山西洗煤厂安全管理人员机考题库大全-上(单选、多选题)
- 硅酸钙板、含锆型硅酸铝纤维棉、高铝型硅酸铝纤维棉技术规格
- 小学二年级下册道德与法治《小水滴的诉说》教学教案
- 2018年可行性研究报告投资估算及财务分析全套计算表格共14个附表excle带公式只更改标红部分即可带说明
- 企业落实安全生产主体责任重点事项清单(20项要点)
- 护士分层级培训与管理课件
- 《人机工程学》第5章人的作业能力与疲劳课件
- 彩钢产品合格证
- 人脸识别外文文献(共9页)
评论
0/150
提交评论