JME提供了一个包:com.jme.app,这个包里提供了一些开发一个JME应用程序的基本类,其中AbstractGame类是基本的基本,这个包中的其他类都是直接或间接继承这个类。
AbstractGame类的作用是提供一个JME游戏开发的基本变量、常量及方法的抽象类,定义了游戏的开始与结束。如果要开发一个JME游戏,那么就要继承或继承AbstractGame类的子类,这些类的作用是定义JME游戏的其他属性及动作,如背景、摄像头、光线、渲染效果等等。com.jme.app包提供了定义好的一些子类,开发一般的3D效果是足够了,如果要涉及到具体的细节就需要自己开发相应的子类,定义自己需要的细节。
AbstractGame类分析:
AbstractGame定义了一个实现游戏的最基本方法。客户端应用程序不应直接继承AbstractGame类。
1、 属性分析:
l finished:标志游戏的运行。
l JME_VERSION_TAG:JME版本号
l DEFAULT_IMAGE:开始图片的路径,就是游戏刚开始时出现的图片,类型是URL。默认的是JME的“大猴子头图片”的路径。
l NEVER_SHOW_PROPS_DIALOG:重来不显示属性对话框。这样你将不能对你的应用程序的显示进行调整。
l FIRSTRUN_OR_NOCONFIGFILE_SHOW_PROPS_DIALOG:只有在属性文件没找到或没加载时才显示属性对话框。
l ALWAYS_SHOW_PROPS_DIALOG:在启动时一直显示属性对话框。
l dialogBehaviour:对话框应该怎么显示,默认的是FIRSTRUN_OR_NOCONFIGFILE_SHOW_PROPS_DIALOG。
l dialogImage:图片应该怎样显示,默认是null。
l properties:类型PropertiesIO,通过加载属性文件定义应用程序的属性。
l display:类型DisplaySystem,游戏着色效果的定义。
2、 方法分析:
l getVersion():返回JME的版本号。
l assertDisplayCreated():确定显示系统在使用前是否被成功创建,如果没有成功创建则扔出JmeException异常。
l setDialogBehaviour(int behaviour):设置属性对话框应该怎样显示。
l setDialogBehaviour(int behaviour, String image):设置属性对话框与开始图片的显示。
l setDialogBehaviour(int behaviour, URL image):设置属性对话框与开始图片的显示。
l getAttributes():此方法尝试第一次通过属性文件“properties.cfg”获得属性信息,然后属性对话框依靠这些信息显示属性信息。
l start():开始游戏。游戏第一次通过调用initSystem()与initGame()进行初始化。假如在初始化的过程中没有出现错误,程序将进入主循环。跳出主循环通过调用finish()与cleanup()。子类应该最终声明此方法。
l finish():跳出主循环。
l quit():离开程序。
l update(float interpolation):更新游戏状态。物理效果、人工智能、联网、核算得分以及之类等等应该在这个方法里完成的事情。多久及什么时候调用这个方法要看主循环的实现。变量interpolation对于0、-1不可用。
l render(float interpolation):向OpenGL上下文显示游戏信息。在着色期间不对游戏的应该怎样运行进行更改。多久及什么时候调用这个方法要看主循环的实现。变量interpolation对于0、-1不可用。
l initSystem():为客户程序创建所以必须的系统元素。它在start()方法调用后只调用且只调用一次。系统的显示必须在这个方法里进行初始化。
l initGame():为启动的需要创建和初始化所有的游戏数据。建议如果在这个方法里频繁调用资源时通过高速缓存的技术。这个方法在initSystem()调用完成后调用且只调用一次。
l reinit():重新就建立子系统。这个方法可以被客户程序在任何时候调用。
l cleanup():在离开程序前清除所有已创建的对象。这个方法在finish()调用完成后调用且只调用一次。