多语言展示
当前在线:1237今日阅读:84今日分享:32

libgdx:[17]libgdx程序生命周期和接口

此篇主要接受libgdx的程序生命周期,和一些常用接口。
工具/原料

libgdx

Libgdx's Application Life-Cycle and Interface
1

libgdx程序的生命周期被很好的定义为一些系统状态,他们被定义的非常简洁:create, resize, render, pause,resume, and dispose.Libgdx 定义了一个接口:ApplicationListener,它包含六个方法,每个方法对应一个状态。下面的代码清单是直接从libgdx的源码中复制的,为了增加可读性我们去除了所有的注释。public interface ApplicationListener {public void create ();public void resize (int width, int height);public void render ();public void pause ();public void resume ();public void dispose ();}你需要做的就是在你的共享代码的项目中的 main方法实现这些方法,libgdx会在正确的时间调用他们。

2

下载示例代码你可以从www.packtpub.com获取你所购买的packt书籍的相关代码。如果你是在别处购买的此书你可以到网站注册账号获取相关文件。

3

下面的视图显示的就是libgdx程序的生命周期:

4

注意所有的虚线基本上和前面使用过的虚线具有相同的意义,虚线链接两个连续的系统状态,如果具有方向性就在线的一端用一个小箭头表示,此外虚线还表示一个系统事件。当一个程序开始时,它会从create()开始。这是程序初始化开始的地方,加载资源到内存中,为程序的游戏世界创建一个初始化的状态。随后紧跟其后的一个状态是resize()。这是程序的第一个机会来改变改变它的宽高来适应以像素表示的屏幕宽高尺寸。

5

下面libgdx会管理系统事件,如果在这一时刻没有事件发生,我们认为程序仍在运行。下面一个状态将是render(),这里主要做两件事情,• 升级游戏世界模块• 用升级的游戏世界模块把场景绘制到屏幕

6

然后libgdx根据对平台的检测做出相应的决定,在桌面程序和web 浏览器程序窗口的显示可以在任何时刻重定义尺寸。libgdx通过在每一个周期比较当前时刻的尺寸和前一时刻的尺寸是否相同来调用resize()确保程序能够适应变化的屏幕尺寸。

7

现在,生命周期再次从处理系统事件开始。另一个可以在运行时发生的系统事件是exit 事件。当他发生时libgdx首先把状态改变为pause(),这里是保存那些在程序被结束时会丢失的数据的很好的地方。此后程序就会把状态改变到dispose()这里程序会做一些清理工作,释放那些仍在使用中的资源。

Starter Classes

一个Start Class 定义一个libgdx程序的入口点。他们是专为特定的平台上写的。通常,这些类非常简单,主要由不超过几行代码来设置某些参数,适用于相应的平台。你可以把它想成每个平台的启动引导,一旦启动libgdx 系统 会交出控制权给其他的代码,通过调用mydemo class 从application listener 接口继承来的其他方法。记住 共享代码是在My demo class 开始的 。我们现在看一下 每一个在项目创立的时候创建的 starter classes 。

推荐信息