鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 手机系统开发 > J2ME > >

基于J2ME 的手机游戏开发

来源:互联网 作者:佚名 时间:2015-08-02 08:04
欢迎进入IT技术社区论坛,与200万技术人员互动交流 >>进入 2.4 J2ME 3D 技术简介 3D 技术已经比较成熟了,在桌面游戏中已经广泛应用该技术,并开发出出色的 3D 游戏.但在小型设备中, 3D 游戏的发展并不令人满意,主要原因是小型设备的有限资源不能满足 3D 技术
欢迎进入IT技术社区论坛,与200万技术人员互动交流 >>进入

 

  2.4 J2ME 3D 技术简介

  3D 技术已经比较成熟了,在桌面游戏中已经广泛应用该技术,并开发出出色的 3D 游戏.但在小型设备中, 3D 游戏的发展并不令人满意,主要原因是小型设备的有限资源不能满足 3D 技术所需求的高速的处理器,大量和快速的内存访问,以及高质量低功耗的图形加速卡,为此,各大厂商都纷纷推出自己支持 3D 的硬件和软件开发工具包.

  为方便开发人员进行 3D 技术开发, JSR-184 标准 M3G 提供了一套简单的 3D API ,目前大部分移动电话厂商和研发机构支持该标准.

  2.4.1 M3G(JSR-184)

  M3G 是J2ME 的一个可选包,以OpenGL 为基础的精简版一共有 30 各类,如图 2-2 所示,运行在 CLDC 1.1/MIDP 2.0 上(必须支持浮点数运算).

  图2-2 M3G 的类示意图

  M3G 只是一个 Java 接口,具体的底层 3D 引擎一般由 C 代码实现.这种全新的的设计使 3D 技术变得不再繁琐,并且可以加入到 J2ME 的整体架构,保证了 Java 3D 技术强大的扩展性.

  下面简单介绍一下 M3G 开发包中的类:

  类名描述AnimationController

  控制动画序列位置、速度等因素.例如能够控制动画应用中灯光的闪光和移动

  AnimationTrack

  和动画特性中的 KeyframeSequence 关联,是一组使得动画系统能够直接刷新的变量

  Appearance

  一系列定义了网格( Mesh )或者精灵( Sprite3D )外观特性的对象

  Background

  定义了如何清空视角( Viewport ),在保留模式下,或者当显示一个世界( World )时Camera

  一个定义了观察者位置和 3D 到2D 投影角度的场景节点.摄影机总是面对 z 轴的负半轴( 0 , 0 , -1 )

  CompositingMode

  外观 Appearance 的组成部分,封装了每个像素的颜色合成属性

  Fog

  外观 Appearance 的组成部分,封装了雾化的属性

  Graphics3D

  一个 singleton 类,它能够用来绑定要显示的内容,从而加以显示,所有关于 3D 图形的绘制都通过 render() 方法完成

  Group

  一个场景节点,以子节点的形式存储一系列无序节点

  Image2D

  2D 图形,可以被用来当作纹理、背景或者精灵图片

  IndexBuffer

  定义了如何为一个几何物体连接顶点

  KeyframeSequence

  封装了动画数据,例如时间戳和关键帧的顺序.这些顺序决定了特定时刻的动画质量,并且这些动画数据可以被多个活动物体共享

  Light

  一个场景节点,用来描绘不同的光源,和材质属性一起决定了物体的颜色

  Loader

  加载并读取经过串行化的场景节点,从而构成整个场景.从M3G 文件中读取 3D 数据是创建 3D 场景最方便的方式之一

  Material

  外观 Appearance 的组成部分,封装了用以计算光照效果的材质属性.其他涉及光照属性的类有 Light 、 PolygonMode 和VertexBuffer

  Mesh

  一个场景节点,描绘了一个用多边形构成的 3D 物体.它有 MorphingMesh 和SkinnedMesh 两个子类

  MorphingMesh

  一个场景节点, Mesh 类的子类,能够实现顶点的 Mesh 模型

  Node

  一个定义了所有场景类的抽象类.它有 5 种类型: Camera 、 Mesh 、 Sprite3D 、 Light 、 Group

  Object3D

  一个定义了能被包含在 World 中的 3D 对象的抽象基类,包含 World 本身、其他场景节点、动画类、材质类等.除了 Graphics3D 、 Loader 、 RayInterdiv 和Transform 类外都是 Object3D 的子类

  PolygonMode

  外观 Appearance 的组成部分,封装了前后面的选择、多边形的填充方式、灯光估计、透视校正和阴影

  RayInterdiv

  存储了一些关于网格 Mesh 和精灵 Sprite3D 的参考,以及一些关于交叉点的信息,无法从 M3G 档中加载

  SkinnedMesh...

  [1] [2] [3] 

网友评论
<