·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
您现在的位置:天新网 > 软件开发 > Java开发 > J2ME
MIDP 2.0游戏API入门
http://dev.21tx.com 2003年12月20日 MrYoucheng

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 下一页

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net