libgdx 学习笔记七 libgdx应用程序生命周期

简介

本章内容描述libGDX 应用程序的结构和怎么根据不同的平台版本使用不同的后台

The Application

做为任意libGDX 工程的主入口点。Application 决定平台的版本和后台图形。Application 接口提供了合适的方法来访问Graphics,Audio, Input andFile I/O模块。也提供了跨平台的Logging模块。

LibGDX 当前支持2个后端一个是desktop applications 另一个是Android applications 。创建libGDX 应用程序,首先必须实现ApplicationListener 接口

The Application Listener

为了初始化application必须实现这个接口, 它用来更新游戏状态(即逻辑),渲染出项,暂停游戏,保存状态,释放资源等。

它也有一个处理application 声明周期事件的地方。每个应用,不管后台平台版本都必须实现ApplicationListener 接口。所有平台都会存在并要实现这个接口。

应用程序中,游戏循环和ApplicationListener式游戏逻辑实现的地方。

一个简单的实现如下:

  1. publicclass 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 }
publicclass 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创建一个桌面应用:

publicclass 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个参数

ApplicationListenerlistener

为应用程序创建的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

原文地址:http://www.cnblogs.com/tianjian/archive/2011/09/02/2163490.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值