libgdx 学习笔记七 libgdx应用程序生命周期
簡介
本章內容描述libGDX?應用程序的結構和怎么根據不同的平臺版本使用不同的后臺
The Application
做為任意libGDX 工程的主入口點。Application 決定平臺的版本和后臺圖形。Application?接口提供了合適的方法來訪問Graphics,?Audio,?Input?and?File?I/O模塊。也提供了跨平臺的Logging?模塊。
LibGDX 當前支持2個后端一個是desktop applications 另一個是Android applications 。創建libGDX 應用程序,首先必須實現ApplicationListener?接口
The Application Listener
為了初始化application必須實現這個接口, 它用來更新游戲狀態(即邏輯),渲染出項,暫停游戲,保存狀態,釋放資源等。
它也有一個處理application 聲明周期事件的地方。每個應用,不管后臺平臺版本都必須實現ApplicationListener?接口。所有平臺都會存在并要實現這個接口。
應用程序中,游戲循環和ApplicationListener式游戲邏輯實現的地方。
一個簡單的實現如下:
public class MyGame implements ApplicationListener {public void create () {
// STUB
}
public void render () {
// STUB
}
public void resize (int width, int height) {
// STUB
}
public void pause () {
// STUB
}
public void resume () {
// STUB
}
public void dispose () {
// STUB
}
這些方法 由在應用聲明周期中的事件觸發,描述如下:
| 方法名 | 描述 |
| create () | 當應用程序創建時,此方法被調用一次 |
| resize(int width, int height) | ?每次游戲屏幕重置尺寸并且不是暫停狀態得時候調用此方法。在create()后調用一次 參數是屏幕被重置后的新寬度和高度 |
| render () | 每次渲染發生時游戲循環調用此方法。游戲更新發生在繪制之前。意思就是說先處理邏輯,在處理繪制。 |
| pause () | 在應用destroyed前調用此方法。在android中檔Home鍵按下或者由重新進入程序時調用此方法。在桌面應用中,退出應用時在dispose()?之間調用 這是一個保存游戲狀態的好地方,在android中resume ()不一定會被調用。 |
| resume () | 這個方法僅在android中調用, 當應用獲得焦點時. 桌面應用中將不會調用此方法。 |
| dispose () | ?當應用destroyed時,調用此方法,在pause()之后 |
應用程序生命周期
上面提到的方法在應用程序的整個生命周期之間會被觸發
以下圖表顯示一個libGDX應用經過的不同階段:
創建一個桌面應用程序
以下類從先前的MyGame listener使用lwjgl創建一個桌面應用:
public class MyDesktopGame {public static void main(String[] args) {
new LwjglApplication(new MyGame(), "My Game", 480, 320, false);
}
}
?以下是運行結果:
他創建了一個lwjgl后臺應用,像素為480X320。最后一個參數表明OpenGL ES 2沒有被使用。
以下類創建了一個桌面應用使用JOGL作為后臺,使用了MyGame
import com.badlogic.gdx.backends.jogl.JoglApplication;public class MyDesktopGame {
public static void main(String[] args) {
new JoglApplication(new MyGame(), "My Game", 480, 320, false);
}
}
第一個例子中需要包含以下庫文件。
-
gdx.jar
-
gdx-natives.jar
-
gdx-backend-lwjgl.jar
-
gdx-backend-lwjgl-natives.jar
第二個例子中需要包含以下庫文件。
-
gdx.jar
-
gdx-natives.jar
-
gdx-backend-jogl.jar
-
gdx-backend-jogl-natives.jar
桌面應用程序構造函數中包含5個參數
| ApplicationListener?listener | 為應用程序創建的ApplicationListener實例 |
| String title | 在應用程序的 title bar上顯示的title |
| int width | 屏幕高度 |
| int height | 屏幕高度 |
| boolean useGL2 | 是否使用GL2,true使用2,false使用1.x |
創建Android應用程序
創建android應用程序涉及到的更多,但仍然很簡單。
請參考My First Triangle?教程 設置android工程。
你需要以下目錄和文件
-
armeabi/
-
armeabi-v7a/
-
gdx-backend-android.jar
-
gdx.jar
總結
以上是生活随笔為你收集整理的libgdx 学习笔记七 libgdx应用程序生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【RK3399Pro学习笔记】十四、RO
- 下一篇: 文件与目录操作