JME 分析

部分一:

   

 每一个游戏的恒心其实就是一个环,在游戏的生命周期内会不停的循环执行部分代码,形成这个环的原
因是场景中坐标系的不断变换所致。

    所以AbstractGame子类负责创建这个环,当某一个子类改变这个环时,其他的子类相应的被更新。如图:

    游戏的初始化,更新,关闭等等操作都在一个线程中进行。

 

部分二:

  

在创建图形应用时,我们需要一个包括main()函数主类。jME给我们提供了AbstractGame和它的子类,

AbstractGame提供了游戏主环,这个游戏环是这个应用的中柱,驱动整个应用。该主环在应用被结束前一

直循环调用,每一次循环叫做一帧。游戏环如何处理是依赖与你选择的AbstractGame的子类。

AbstractGame及其所有的子类是抽象类,因此不能直接被实例。这意味着用户必须继承已经提供游戏类型

的某一类型,并实现它的静态方法。这也就是说如果API提供的AbstractGame的子类不能符合或者满足你系

统的要求时,你可以自己创建满足你需要的AbstractGame的子类。其实API提供的AbstractGame的子类包

括了大部分的功能,基本上能满足大体的需求。


    getVersion方法将为您提供一个字符串,JME详细的版本号。该版本字符串形式: jME version 1.0 。 此

字符串是一个有用的系统工具信息。

 

部分三:

    

jME库提供5种游戏类型。

    BaseGame


    BaseGame提供AbstractGame的基本实现。它仅仅定义了主游戏环,这个环是高速运转的,每一次迭代

都是CPU或GPU的一次处理。我们必须扩充循环方法:


    initSystem方法,创建显示系统。这些是非游戏内容,比如窗口,摄像机,输入系统等等。基本上,所有

的游戏系统都应该从这初始化。


    initGame方法创建场景数据。


    update方法,更新场景数据。比如游戏定时器, 输入方法、动画, 碰撞检查等等。


    render方法,处理窗口游戏场景显示。


    reinit方法,重建系统时被调用。比如显示设置被改变。


    cleanup方法,关闭打开的资源。

    SimpleGame


    SimpleGame是一个快速使用和容易设计的游戏类型。SimpleGame是BaseSimpleGame的子类,实现

BaseSimpleGame的所有的抽象方法。相反地, 用户还必须实现simpleInitGame方法,在simpleInitGame方

法中,用户只需关注自己的游戏数据,系统会为用户提供一个根节点(rootNode),所有的游戏数据都可以附

加在这个根节点上。而且这些都被初始化,其中包括输入系统(FirstPersonHandler),计时器设置,还提供

了状态:灯光,缓冲器和默认关闭(WireFrameState)。


    此外,可以重写simpleUpdate方法:更新。这个扩展可以提高SimpleGame的更新能力;simpleRender

方法:渲染。

    SimplePassGameSimpleHeadlessGame用于Swing/AWT,像BaseGame一样提供快速创建应用。

    下面的3种类型为BaseGame类型提供变化,事件引起的速度变化。

    FixedFramerateGame:允许用户设置游戏最大帧。这个游戏环不是快速的循环,但是也不是慢速的循

环。限制游戏环的循环速度在操作系统优化的范围内,也就是说,如果游戏环的循环速度没有限制,很容易

是CPU使用达到100%。对于全屏应用是好的,但是对于窗口应用会存在问题。

    FixedLogicrateGame:允许尽可能地快,但是仅仅给一个定义就要花费很多的时间对于更新这个方

法。指定游戏按照指定的比例更新,尽更可能快速的处理它。

    VariableTimestepGame:与BaseGame相似,然而它提供框架间的时间,用于维持定时器对象。

 

部分四:

  

JME 2.0 完整的功能列表

导言

JME的是一个场景图的体系结构。该场景图允许在一个树结构,数据组织的游戏在一个父节点可以包含任意数量的子节点,但子节点包含一个单亲家庭。 .通常,这些节点是有组织的空间,使整个供处理部门迅速抛弃。 .例如,如果我们建立了一个图,这样在一个房间里都有一个父(室),所有房间都有一个父(层),所有楼层都有一个家长的建设的各个对象。我们的性格是在会议室的一楼1。 我们可以快速地抛弃在地上2节点(这是每一个丢弃在二楼和这些房间中的每个对象的房间打开)然后,我们可以处理楼1树枝。 所有房间未房间1被丢弃(包括在那个房间里所有的对象)。然后,我们处理室1包括它的对象。

抛弃意味着各种各样的事情,但最重要的是图形编程的数据剔除. JME的的相机系统使用域剔除扔掉现场分行不可见。 .这允许将呈现典型的快,现场的大部分是不可见在任何一个时间,复杂的场景。

该场景图的叶子节点是几何将呈现给显示。有许多支持几何学的,其中包括:贝塞尔补丁,线,点,模型(Milkshape,MD2的,日月光等),地形,详细程度,等等。

JME的还支持许多高层次的影响,如:骗子(渲染到纹理),环境制图,光晕,着色,粒子系统等

JME的供应与易于使用的用户,但建设强大的应用程序类。 到JME的跳应该是一个快速,无痛的过程。 一个小的学习曲线,你可以有你的游戏和在任何时间运行。

Features List 功能列表

以下是目前(2.0版的清单)的jMonkeyEngine特点:

Sample Applications 示例应用程序

游戏系统的游戏主循环SimpleGame维修允许提供了一个概念验证快速切入点StandardGame和GameStates提供能够改变游戏状态(菜单,游戏,信贷等)

Embedded Integration 嵌入式集成

Java Apple  
AWT and Swing 
SWT(标准窗口工具包) 

Import / Export 导入/导出

JME的快速和紧凑的二进制格式 
用户可读的XML格式 
可扩展,让其他导入/导出格式

Bounding System 包围系统

所有的几何形状可以包含在一个边界制度。盒(美国血库,OBB的),胶囊和领域。 Used for culling and collision checking.用于扑杀和碰撞检查。

Curves 曲线

Bezier曲线可用于节点控制。

Bezier Mesh 贝塞尔网

对于平滑曲面。 
字体网格 
能力生成三维网格的字体。

Effects 效果

GLSL的Shader支持 
顶点和片段计划支持(ARB的着色) 
.高质量的水可配置的反射,折射,波浪发电等 
布卢姆 
可扩展的粒子系统。 
镜头喇叭。 
织物仿真。 
屏幕着色。 
基于dot3凹凸纹理映射 

Image Loading 图片载入中

支持BMP,热重(压缩和压缩),JPG格式  巴布亚新几内亚 ,GIF和渠务署署长(cubemaps + DXT)。

Texture System 纹理系统

支持mipmapping,环境映射,纹理,纹理着色。

Input System 输入系统

强大的系统允许的输入动作容易建立。

Collision and Picking 碰撞和采摘

高效包围体和三角准确采摘和碰撞。

Lighting System 照明系统

处理了在同光选择最佳时间8公用事业灯。支持定向灯,射灯和点光。

Shadow System 影子系统

模板阴影和动态阴影地图。

Math Library 数学库

提供更快的查找表的线性代数使用系统。

Level of Detail 层次细节

离散的详细程度使用快速模式切换开关机制。连续细节层次动态倒塌的单一模式三角形。

Model Loading 模型加载

COLLADA, 3DS, Obj, MD2, MD3, Milkshape, X3D, ASE support. Supports skin, bones and weighted skeletal animation.

Shape Primitives 形状基元

Box, Sphere, Cylinder, Capsule, Torus, Arrow, Disk, Hexagon, Dodecahedron, Icosahedron, Octahedron, PQTorus, Pyramid and Quad support.

State System 国家制度

 OpenGL的最小化跟踪和管理的OpenGL机器状态的状态变化。允许合并纹理和轻州树。

Camera System 摄像系统

保持作为一个单独的对象或一个场景中的节点相机。截锥体效率扑杀。

Renderer Abstraction 渲染抽象

.任何渲染 API实施。目前LWJGL 2.0和JOGL允许实施。渲染队列排序现场进行不透明的因素.不透明的排序前向后和呈现,再透明的排序后到前,是由z深度排序最后屏幕元素。

Render to Texture 渲染到纹理

使任何一个纹理对象的场景(目前要求的FBO支持)

Imposters 冒充

渲染到用来显示单一的模式,以纹理质地,可以是动画一样慢需要增加的帧速率。

Billboard Node 广告牌节点

保持一个节点所面临的相机

Sound 声音

支持OpenAL的音乐和FMOD排队系统

Terrain 地形

地形块作为单一的几何形状。地形页实现了地形块四树。

User Interface 用户界面

JMEDesktop系统可以呈现swing在JME的场景组成部分。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值