毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

基于J2ME WTK的2D手机游戏开发(英文文献翻译) 第5页

更新时间:2010-3-11:  来源:毕业论文
基于J2ME WTK的2D手机游戏开发
J2ME提供了描述的概念,使得可以为特定的设备家族定义相同的Java平台。描述可以满足两种明显不同的可移植性需求:
(1)描述为在一个特定的设备家族实现应用提供了完整的工具,比如传呼机、机顶盒、移动电话、洗衣机或智能玩具。
(2)可以创建一种描述来支持重要的、一致的一组应用,这些应用可能会在几各不同的设备上运行。
简单地说,描述就是应用和市场的设备家族之间的协议。处于同一个设备家族中的所有设备都必须实现其描述所定义的特征,并且要求应用只使用这个特定描述所提供的功能。在实现层次上,描述被简单地定义为应用在特定配置上的Java API和类库的集合,同时为市场中特定的设备家族提供了附加的面向特定领域的功能。
现在,己经有了五个规范化了的描述。如表3-1所示。
  表3-1 五个规范化描述
描述名称 下层配置
Mobile information device profile(MIDP) CLDC
Personal digital assistant profile CLDC
Foundation profile CDC
Personal profile CDC
RMI profile CDC
3.4.1 MIDP 应用程序
CLDC和MIDP组合起来为创建移动电话应用程序提供了完整的环境。MIDP应用程序或者称为MIDlet。其模型如图3-2所示。
 图3-2 MIDlet应用框
MIDlet 有三个状态,分别是pause、active 和destroyed。在启动一个MIDlet的时候,应用管理软件会首先创建一个MIDlet 实例并使得他处于pause 状态,当startApp()方法被调用的时候MIDlet 进入active 状态,也就是所说的运行状态。在active 状态调用destroyApp(booleanunconditional)或者pauseApp()方法可以使得MIDlet 进入destroyed 或者pause 状态。值得一提的是destroyApp(boolean unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS 通知MIDlet 进入destroyed 状态。在destroyed 状态的MIDlet 必须释放了所有的资源,并且保存了数据。如果unconditional 为false的时候, MIDlet 可以在接到通知后抛出MIDletStateChangeException 而保持在当前状态,如果设置为true 的话,则必须立即进入destroyed状态[14]。如图3-3说明了MIDlet 状态改变情况。
图3-3 MIDlet 状态图
3.4.2 MIDP UI 组件
In 组件与低级绘制相比,用在游戏开发上的机会较少,但还是会到。所谓UI组件,是指继承了javax.microedition.lcdui.Screen类的javax.micr oedition.ledui.Alert,javax.microedition.lcdui.Form,javax.microedition.lcdui.TextBox,javam microedition.lcdui.List等。如图3-4为我们展示了整个LCDUI 包的体系。
 图3-4 LCDUI包的体系
Screen 类属于高级图形用户界面组件, Canvas 是低级图形用户界面组件,在同一时刻,只能有唯一一个Screen 或者Canvas 类的子类显示在屏幕上,我们可以调用Display 的set Current()的方法来将前一个画面替换掉,我们必须自行将前一个画面的状态保留起来,并自己控制整个程序画面的切换。同时我们可以运用javax.microedition.lcdui.Command 类来给我们的提供菜单项目的功能,分别是:Command.BACKCommand、Command. CANCEL、Command.EXIT、Command.HELP、Command.ITEM、Comm and.OK、Command.SCREEN 和Command.STOP,我们在Display able对象中定义了add Command()和remove Command()两个方法,这就意味着我们可以在高级UI 和低级UI 中同时使用Command 类,同时我们通过注册Command 事件来达到事件处理的目的,即Command 必须与Command Listener 接口配合使用才能反映用户的动作[23]。
与高级UI 相比,低级UI 就自由很多,任何时候我们可以调用repaint()产生重绘事件,调用完了repaint()会立刻返回,调用paint()回调函数则是由另一个专门的线程来完成。底层事件大致可分为三类:Press Events(按键事件),Action Keys(动作按键,PointerEvents(触控事件)。
我们将围绕这三个主题来介绍一下这种事件的用法:
键事件的几个核心方法为:keyPressed(),keyReleased(),keyRepeated(),当按键按下时会触keyPressed(),当松开按键时,会触发keyReleased(),当长时间按住按键时会触keyRepeated(),但是RepeatEvents 不是JTWI 要求强制支持的,所以使用之前要进行测试,看设备是否支持。在Canvas 里面我们每按下一个按键都会触发keyPressed()函数,并传入相应位置的整数值,我们在MIDP 规范中可以很容易的发现,KEY_NUM0—KEY—NUM9 十个常数分别代表键盘上的0-9还有两个功能键,KEY_STAR,KEY_POUND,如果我们传入的值小于0,代表我们传入了不合法的keycode,某些机器上还支持连续按键响应,但这并不是JTWI 规定要支持的,所以我们在进行实际开发之前一定要用我们前面讲到的hasRepeatEvents()方法来进行判定。动作按键主要针对游戏来设计的,在API 中定义了一系列的动作事件:UP,DOWN,LEFT,RIGHT,GAME_A,GAME_B,GAME_C,GAME_D,当按下这些按键时会映射到我们自己为每个按键事件编写的方法,来完成一些动作

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

基于J2ME WTK的2D手机游戏开发(英文文献翻译) 第5页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。