手机游戏趋势和相关J2ME APIs


·智能客户端可以访问手机专用网络(如SMS和MMS)或者设备扩展(如GPS)特征。这使得开发完全利用手机生活方式的优点的游戏成为可能。

·智能客户端通过高级加密和数字签名算法提供更强大、更灵活的安全性。有了智能客户端,我们有可能在因特网上传递感性的私人数据以及建立有效的在线社会。

便携式平台

相对其他智能客户端平台而言,J2ME有一个独特的优点:它是专为手机设计的。J2ME应用可运行在不同投资商的不同设备上。这在高度竞争性的手机设备行业中是特别重要的,因为存在大量的不同设备。所有主要的智能手机制造商都承认支持J2ME平台。代码的可携带性对于那些想要维持单一代码库的消费者的数目不断扩大的开发者来说是至关重要的。

J2ME解决了“最低公共统治者”的问题,这个问题以前一直困扰着桌面Java。J2ME通过定义一个包括配置、配置文件和可选软件包在内的多层结构解决了这个问题。迄今为止,在手机游戏行业中,最流行的J2ME平台是手机平台设备配置文件(MIDP)和在MIDP之上建立的可选软件包。在本文中,我重点讨论MIDP V2平台。


因为J2ME应用在不同设备上都是便携式的,他们常常可在网络上下载和执行。如果没有正确的防范,它则为用户和无线通信公司冒着无数个安全的风险。幸运的是,Java被设计成一种安全的语言。所有字节码应用在执行之前都要校验;JVM在执行过程中监督应用的安全性和存储违反问题。MIDP v2 运行时间包括一个完全特征化的、基于域的安全管理员,它在应用的数字签名者鉴别的基础上赋予应用API级许可。

由于J2ME的广泛使用,手机Java开发者已经成长为一个相当大的市场。几乎所有流行的Java开发工具都已经改造得适合于J2ME开发者的需要。来自第三组织提供者的J2ME库和组件容易得到。那些库中的许多库提供针对于它们的Java2平台标准版(J2SE)对应物的类似的特征。例如:IBM服务管理框架(SMF)支持PDAs 上的Java servlets; PointBase 微型版提供的用于手机相关数据库的方法类似于Java数据库连接(JDBC)的方法; IAIK JCE-ME支持Java密码技术扩展(JCE)的轻型版。这些工具和库使得J2SE 开发者移植技术到手机行业中比较容易。相应的,他也为J2ME投资商提供了大量的开发者来源。这种良性循环将有助于J2ME的成长。

APIs和工具的概观

接下来的部分,我将概观J2ME与游戏相关的API并且测试他们提供给开发者的功能。

用户界面

MIDP 运行时间提供了对手机设备的屏幕和硬件键的细粒度控制。所有的MIDP UI类都是从 Javax.microedition.Displayable接口上继承而来:

·Screen类是用于高级小器件如Alert, List, Form, 和 TextBox的基础。MIDP 运行时间控制如何显示那些高级UI类以及如何在特殊设备的UI惯例的基础之上安排功能键。MIDP 高级UI小器件最适合用于文本控制。在高级UI 类中,Form 类是最灵活的。你可以指定 Form屏幕的布局并且可以给它添加一些东西如:StringItem, TextField, DateField, ChoiceGroup, 和 Gauge。

MIDP v2 规范将两个重要的创新带进了高级UI中:首先,它引入Spacer 和ImageItem 项,从而允许同一个Form 上的混合文本和图像显示;其次,他引入CustomItem 类,从而为开发者提供了设计和实现自己的项级别的窗口小器件的机制。开发者对CustomItem 对象,包括像素级别的绘画和内部事件处理在内,拥有最终控制权。

·Canvas类是低级别MIDP UI的基础。它提供对在整个屏幕之上的像素级绘画的访问以及对用于所有硬件键的自定义映射的访问。你可以只创建Canvas的子类并且跳过用于显示逻辑的paint()方法;用于键事件的 keyPressed(), keyRepeated(), 和keyReleased()方法;以及用于每个事件中指示器和触摸屏的pointerPressed(), pointerDragged()和 pointerReleased()方法。

·GameCanvas 类继承于Canvas类。他是MIDP v2 游戏API的一部分并且为游戏开发提供了便利机制。例如:在GameCanvas子类中,每次你修改时不需要跳过paint() 方法就可以描绘整个屏幕。你可直接从getGraphics()方法中得到Graphics 对象并且在该对象上绘图。当你需要更新显示时,你可以调用flushGraphics()方法。但是 你使用flushGraphics()方法只可以更新屏幕的一部分。相比Canvas 类的单一方法而言,GameCanvas类使得我们易于保持图形状态,易于迅速更新屏幕的动画部分。类似的, GameCanvas 类使用和Canvas 类中回叫方法相反的getKeyStates()方法,为获得键状态提供了一个便利的途径。这使得复杂游戏屏幕类中的执行流动性要灵活的多。
MIDP v2规范为 Javax.microedition.lcdui.game 软件包中的游戏应用程序定义了一个完整的API。除了GameCanvas类之外,他还提供了支持平铺或者动画游戏背景图片的Layer 类。游戏API也提供了处理动画图片和冲突的Sprite类。他们是2D图形游戏中的基本组件。在3D前沿,Java规范请求(JSR) 184 试图标准化手机上的Java 3D API 。它做出了极好的改进。开发者和艺术家需要的J2ME 3D工具现在在SuperScape (见 Resources)中可以得到。大型设备制造商在他们的高端智能手机设备上迅速的转变,以支持这种新API。



Figure 4. Java 3D games available from SuperScape

除了标准的MIDP UI 和游戏APIs之外,也存在几种其它的MIDP UI工具箱。他们要么提供设备的专有功能,要么旨在支持更好的可促进游戏开发的高级UI:

·Nokia UI 软件包提供对Nokia 手机上的声音、亮度和振动组件的控制。它也支持用于更加专业级的游戏的全屏模式。

·Motorola 轻型小器件工具箱(LWT) 是一个独立的用于Motorola 手机的窗口工具箱。

·Nextel Open Windowing Toolkit (OWT)是Motorola和Nextel联合开发的开源工具箱。 它运转一个容器模型来控制布局和其他UI组件,这是桌面UI开发者所熟悉的。OWT基于Canvas类并且运行在所有的MIDP手机上。但是,如果你使用OWT库,你必须将它包括在你的分布式MIDlet组中。

·Synclast UI 项目开发了一个支持容器模型的开源UI软件包。在MIDP v1 Canvas 类的基础上,他支持许多MIDP v2小器件。因此,它允许MIDP v2应用做一点小小的修改之后运行在今天的MIDP v1设备上。有了OWT,你必须将Synclast库捆绑在分布式应用中。

总的来说,MIDP平台为丰富的UI游戏提供了多种选择。

网络和后台集成

正如我前面提到的一样,手机游戏的未来就是联网的多玩家游戏。J2ME中的联网可通过一般连接框架(GCF)来获得支持。GCF的核心就是工厂类 Javax.microedition.io.Connector。你可以传递一个协议和地址字符串到静态方法Connector.open()上,以便获得到远程主机上的连接对象:
共3页 首页 上一页 [1] [2] [3下一页 尾页>
字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z