东北大学秦皇岛分校3-J2ME游戏报告.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:9 大小:1.2MB 金币:14 举报 版权申诉
预览加载中,请您耐心等待几秒...

东北大学秦皇岛分校3-J2ME游戏报告.doc

东北大学秦皇岛分校3-J2ME游戏报告.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

14 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

J2ME手机游戏开发报告系别电子信息系专业计算机科学与技术专业班级40702姓名指导教师2010年6月28日东北大学秦皇岛分校J2ME贪吃蛇项目说明与分析1、游戏说明:*运行环境:手机移动平台,经过实验多种型号手机都可以运行。当然前提下是手机要支持JAVA功能才行。*本游戏支持RMS持久化数据库存,可以保存游戏计分,关数,速度。*用户可以自行设置游戏速度,游戏关数。*想在手机上运行,可以通过多种方式,将文件传送到手机中,当然最普通的方式就是通过USB连接将数据传送到手机上。由于我把项目的所有源代码都发布了,传送时只需要将项目文件当中.jar和.jad传进去。有的手机,可能不需要那个.jad的文件,这两个文件在项目当中的dist目录下。不需要将其他的文件发送到手机上去。2、游戏分析:首先分析此游戏,我们先来看一下抽象食物对象的类。Guttler.java:/*此类是游戏场景上需要的对象*/packageGuttlerGame;importjavax.microedition.lcdui.Graphics;publicclassGuttler{publicintx,y;//确定对象的坐标位置的属性privatestaticintw=5,h=5;//确定对象的大小属性/*此构造方法构造一个具有坐标位置的对象*/publicGuttler(intx,inty){this.x=x;this.y=y;}/*在游戏场景上画此对象的方法*/publicvoidpaint(Graphicsg){g.setColor(255,255,255);g.fillRect(x,y,w,h);g.setColor(10,10,30);g.drawRect(x,y,w,h);}/*获取此对象的一个Rectangle对象*/publicRectanglegetRect(){returnnewRectangle(x,y,w,h);}}上面是抽象了一个在屏幕上的食物对象,在这个对象中要利用此对象的的x,y坐标和w,h宽高大小获得一个方框对象,抽象一个Rectangle矩形对象,此对象主要是为了碰撞检测时候用的,下面我们来看一下这个类的内容:Rectangle.java:/*此类是一个Rectangle类对象是为实现物体之间的相交,碰撞检测的类*/packageGuttlerGame;publicclassRectangle{publicintx,y,w,h;//此对象的坐标位置和高宽属性/*构造方法构造一个具坐标位置和高宽属性的对象*/publicRectangle(intx,inty,intw,inth){this.x=x;this.y=y;this.w=w;this.h=h;}/*Rectangle与Rectangle对象重合的方法*/publicbooleansuperposition(Rectanglerec){if(this.x==rec.x&&this.y==rec.y){returntrue;}returnfalse;}/*Rectangle与Rectangle对象相交的方法*/publicbooleanintersect(Rectanglerec){if(this.x>=rec.x&&this.y>=rec.y&&this.x<=rec.x+rec.w&&this.y<=rec.y+rec.h){returntrue;}returnfalse;}}当然有了这些东西当然不行,因为一个手机程序的入口点对象必须继承MIDLet这个类,所以我们必须创建一个主类,继承MIDLet这个类,然后重写MIDLet类当中的方法。下面是一个手机应用程序继承MIDLet必须重写的方法publicvoidstartApp()/*开始运行此类的方法*/{}publicvoidpauseApp()/*暂停,中止的方法*/{}publicvoiddestroyApp(booleanunconditional)/*撤销此类的方法*/{}J2ME就提供了RMS技术类似于数据库的一个技术,实现代码如下:首先得创建一张数据表,只有手机没有这张表的时候才会执行这段代码,也只有第一次运行的时候才会创建该表和初始化该表字段。try{rs=RecordStore.openRecordStore("GameDatabase",true);if(rs.getNumRecords()==0){Strings1=Integer.toString(num);rs.addRecord(s1.getBytes()