生命周期
Libgdx应用有一个定义好的生命周期,控制着整个应用的状态,例如creation, pausing, resuming, disposing
ApplicationListener
开发者可以通过实现ApplicationListener接口,并传入一个实现了Application的实例来获得生命周期事件的回调函数。自此之后,每当发生一次应用层的事件,Application都会调用ApplicationListener。ApplicationListener的主干实现是这样:
public class MyGame implements ApplicationListener {
public void create () {
} public void render () {
} public void resize (int width, int height) {
} public void pause () {
} public void resume () {
} public void dispose () {
}
}
如果不是所有的接口方法都是相关的,开发者可以从ApplicationAdapter派生一个类。一旦传入了Application,ApplicationListener的方法会在下面时刻被调用:
Method signature | Description |
---|---|
create () |
应用创建时调用。 |
resize(int width, int height) |
屏幕被re-size,且游戏不处于暂停状态时调用。在create()执行后,该方法也会被调用。参数是新的屏幕宽度与高度的像素数。
|
render () |
应用在游戏循环中每次重绘时调用。游戏逻辑通常在这个方法中更新。 |
pause () |
在Android上,按到Home键时或有来电时会调用。在Desktop应用中,会在 dispose() 执行,应用退出前执行。这是保存游戏状态的好地方。 |
resume () |
从暂停状态恢复时调用,仅在Android上调用。 |
dispose () |
应用销毁时调用,会紧接着一个pause()方法执行。 |
主循环
Libgdx本质上是由于Android和JavaScript的作用产生时间驱动的,并不存在显式的主循环。可以将 ApplicationListener.render() 看作是主循环体。