1 2 3 下一页
MIDP 2.0为 移动设备提供了众多新的特性,主要表现在媒体的支持,增强的Ui接口,更多的
网络协议,OTA以及安全性等方面。然而最让我们感兴趣的是
游戏api的新特性。本文意在通过一些例子来介绍新的游戏API类及其用法。例子调试环境为
J2ME Wireless Toolkit 2.0 Beta.
游戏 API 游戏 API 帮助开发者(
游戏开发者或者其他需要更好ui界面的开发者)帮助用户快速开发实用并且节省
内存以及存储空间的程序界面。 使用MIDP 1.0 game开发者必须定义自己的一套图像类来获得好的界面及程序性能 ,这必然会增加程序存储方面的开销,使你的jar文件变得更大。新的游戏api可以解决这些问题。
游戏API的基本思想是游戏界面由图层组成。背景可以在一个图层上,而游戏人物可以在另一个图层上。 每一个图层都可以分别被 游戏API控制。 按照经验,游戏的额场景通常会比
手机的屏幕大,所以在传统的方法中控制屏幕的滚动是一件很痛苦的事情。 新的游戏API 一个新的观察窗口(view window),通过它可以看到所有的游戏场景,并且它可以很容易的被移动很定位。
游戏API 的路径为
Javax.microedition.lcdui.game。这五个新的类是: GameCanvas, Layer, LayerManager, Sprite, TiledLayer.
GameCanvas是一个提供了游戏的基本接口的抽象类。这个类与Canvas 类相比有两个优点:1。它拥有屏幕缓冲,2。它可以直接得到设备
键盘的物理状态。
Layer 是一个定义了游戏元素的抽象类。 Sprite 和TiledLayer 继承了这个类。 Layer是一个非常常用的类。
LayerManager负责管理Layer对象,并且按照指定的顺序画他们。
Sprite 包含了若干帧图像的Layer。这些帧保存在Image对象中。 通过Sprite类我们可以只使用其中的部分帧,或者通过播放一个帧的序列来创建一个动画。 Sprite类还能检查它是否与其他的Sprite类或者TiledLayers 有重合。
TiledLayer 和 Sprite有点相似,但是它更多的被用来创建背景,比如赛道或者其他更大的区域。TiledLayer包含一个表格(a grid of cells),我们可以用图像或者文字来填充他。所以说一个背景或者一个场景是可以用一系列的小图片来创建的。
处理用户输入 在MIDP 2.0中,传递用户的输入与MIDP 1.0有所不同. 在 1.0 中你需要Canvas的 getGameAction()方法来得到游戏中用户的按键。 在2.0 中你可以调用GameCanvas的getKeyStates() 方法来直接得到键盘的状态。
下面是一个示例代码。 首先我们得到键盘的状态 ,然后通过bit操作判断方向键的状态后作出相应的响应。
protected void keyPressed(int keyCode) { int move = 0;
int keyState = getKeyStates(); if ((keyState & LEFT_PRESSED) != 0) { // do something }
if ((keyState & RIGHT_PRESSED) != 0) { // do something }
if ((keyState & UP_PRESSED) != 0) { // do something }
if ((keyState & DOWN_PRESSED) != 0) { // do something } } |
上一篇: 使用JavaCard RMI接口
下一篇: 移动数据库和J2ME工具探讨
1 2 3 下一页