计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费手机吞吃蛇游戏的设计与开发(一)毕(3)

2013-06-27 01:18
导读:lkit —— Sun的无线开发工具包。这一工具包的设计目的是为了帮助开发人员简化j2me的开发过程。使用其中的工具可以开发与 Java Technology for the Wireless Ind
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状态。

(科教范文网http://fw.nseac.com)


 
 
 
 
 
 
 
 
 
 
 
 图1:状态转换关系图
 3.1.2系统流程图
 本程序采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。运行程序后允许用户选择执行选项菜单,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。
 系统流程图,如图2:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 图2:系统流程图
 3.1.3系统流程说明
 上图主要展示游戏的进行控制流程图,这里说明一下流程。首先当游戏运行时将对玩家进行按键进行检测,同时对方向进行响应。这里的响应主要是在屏幕上显示蛇的移动方向,同时还会检测当前蛇的状态。如果蛇头碰到蛇尾或者蛇头碰到墙壁都会导致游戏结束。当蛇头碰到蛋的时候,会进行家分,同时在屏幕上显示出来。
 同时这里还有其他按键检测,主要是对菜单按键检测。菜单按键检测包括退出和系统设置。当游戏中检测到退出按键时,游戏结束。当游戏中检测到菜单按键时进行菜单按键事件处理,主要是设置游戏暂停,等级和音效开关。
 3.2数据结构设计
 节:一条蛇可以看成有许多正方形的“小格子”拼凑成,我把它称作节。节是蛇身上最小的单位。
 段:当许多节连成一条直线,我称它为段。贪吃蛇只有一段,如果它拐弯就变成两段。
 链表:用来保存每一段的状态,链表的元素单位是段。且链表的最后一个元素表示蛇的头部段。
(科教作文网http://zw.NSEaC.com编辑发布)

 坐标系: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;
     //退出游戏标志
  
上一篇:免费基于细胞自动机的生命活力模拟的实现(一 下一篇:没有了