免费获取
|
论文天下网
|
原创毕业论文
|
论文范文
|
论文下载
|
计算机论文
|
论文降重
|
毕业论文
|
外文翻译
|
免费论文
|
开题报告
|
心得体会
|
全站搜索
当前位置:
论文天下网
->
免费论文
->
计算机论文
免费手机吞吃蛇游戏的设计与开发(三)
lkit —— Sun的无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。使用其中的工具可以开发与 Java Technology for the Wireless Industry (JTWI, JSR 185) 规范兼容的设备上运行的j2me 应用程序。该工具箱包含了完整的生成工具、实用程序以及设备仿真器。WTK是用来开发MIDP的,为了让MIDlet可以顺利编译和执行,WTK必须具有CLDC和MIDP的类库,WTK可以帮助我们省去额外安装调试这些类库的时间
3贪吃蛇游戏系统设计
3.1程序流程
3.1.1结构构造
MIDlet suite是MIDP应用程序的最小单位,JAM负责将手机内的MIDlet suite以图形化的方式呈现,让用户能够选取欲执行的MIDlet suite,一旦选取了某个MIDlet suite,操作系统就会激活KVM执行里面的MIDlet。MIDlet及相关的支持类组成了MIDP应用程序的实际内容。而每个MIDlet都必须继承javax.microedition.midlet.MIDlet这个抽象类。在MIDP规范中定义了MIDlet的生命周期,以及可以存在的三种状态,包括Paused、Active以及Destroyed,每一个MIDlet在任何时刻只可能处于其中的一个状态。这三种状态的转换关系如图1所示:MIDlet有三个状态,分别是pause、active和destroyed。在启动一个MIDlet的时候,应用管理软件会首先创建一个MIDlet实例并使得他处于pause状态,当startApp()方法被调用的时候MIDlet进入active状态,也就是所说的运行状态。在active状态调用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet进入destroyed或者pause状态。值得一提的是destroyApp(boolean unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS通知MIDlet进入destroyed状态。在destroyed状态的MIDlet必须释放了所有的资源,并且保存了数据。如果unconditional为false的时候,MIDlet可以在接到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。
图1:状态转换关系图
3.1.2系统流程图
本程序采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。运行程序后允许用户选择执行选项菜单,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。
系统流程图,如图2:
图2:系统流程图
3.1.3系统流程说明
上图主要展示游戏的进行控制流程图,这里说明一下流程。首先当游戏运行时将对玩家进行按键进行检测,同时对方向进行响应。这里的响应主要是在屏幕上显示蛇的移动方向,同时还会检测当前蛇的状态。如果蛇头碰到蛇尾或者蛇头碰到墙壁都会导致游戏结束。当蛇头碰到蛋的时候,会进行家分,同时在屏幕上显示出来。
同时这里还有其他按键检测,主要是对菜单按键检测。菜单按键检测包括退出和系统设置。当游戏中检测到退出按键时,游戏结束。当游戏中检测到菜单按键时进行菜单按键事件处理,主要是设置游戏暂停,等级和音效开关。
3.2数据结构设计
节:一条蛇可以看成有许多正方形的“小格子”拼凑成,我把它称作节。节是蛇身上最小的单位。
段:当许多节连成一条直线,我称它为段。贪吃蛇只有一段,如果它拐弯就变成两段。
链表:用来保存每一段的状态,链表的元素单位是段。且链表的最后一个元素表示蛇的头部段。
坐标系:MIDP中的坐标以左上角那点为(0,0),向右则x递增,向下则y递增。
这里讲解数据结构类中主要属性,其他方法将在后面讲解。
这里用一个SnakeLink类来表示一个蛇身体节点对象:
public class SnakeLink {
private int x, y;//坐标
private int len;//长度
private byte dir;//方向
private SnakeLink() {
}
……
}
这里用SnakePit类来表示一个蛇对象的基本游戏属性:
public class SnakePit extends Canvas implements Runnable {
//蛇的食物
private SnakeFood myFood;
//当前蛇对象
private Snake mySnake;
//结束标志
private boolean gameOver = false;
//暂停标志
private boolean gamePaused = false;
//重来标志
private boolean gameRestart = false;
//重画标志
private boolean forceRedraw = true;
//退出游戏标志
 
首页
上一页
1
2
3
4
5
6
7
下一页
尾页
3
/7/7
相关论文
上一篇
:
免费基于细胞自动机的生命活力模..
下一篇
:
免费数据包截获技术的研究与实现
推荐论文
本专业最新论文
Tags:
手机
游戏
设计
开发
【
返回顶部
】
相关栏目
自动化相关
计算机论文
工程管理论文
法律论文
医学论文
人力资源
电子专业
电气工程
英语论文
行政管理
电子商务
社科文学
教育论文
物流专业
金融专业
财务管理
会计专业
化学化工材料科学
电子通信
环境科学
经济类
机械模具类
报告,总结,申请书
其他专业论文