Libgdx生命周期和模块介绍

Libgdx生命周期

Libgdx 游戏实现了ApplicationAdapter ,ApplicationAdapter包含了整个游戏的生命周期,ApplicationAdapter 又继承自ApplicationListener。
当游戏创建之后先调用ApplicationAdapter的create函数,来初始化游戏资源。
Libgdx生命周期和模块介绍_第1张图片

Method Description
create () 当Application一创建的时候就会调用此方法
resize(int width, int height) 当游戏第一次创建的时候会调用一次,以后每当游戏窗口改变的时候会再次调用(单位像素)
render () 游戏的主要进行,更新游戏的各种数据
pause () 当游戏窗口unfoucs时调用此函数
resume () 当游戏窗口foucs时调用此函数
dispose () 当Application销毁时,调用此函数
public class LibgdxGame extends ApplicationAdapter {
    SpriteBatch batch;
    Texture img;

    @Override
    public void create () {
        Gdx.app.log("LibgdxGame", "create");
        batch = new SpriteBatch();
        img = new Texture("badlogic.jpg");
    }

    @Override
    public void render () {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        batch.begin();
        batch.draw(img, 0, 0);
        batch.end();
    }

    @Override
    public void resize(int width, int height) {
        Gdx.app.log("LibgdxGame", "resize");
    }

    @Override
    public void pause() {
        Gdx.app.log("LibgdxGame", "pause");
    }

    @Override
    public void resume() {
        Gdx.app.log("LibgdxGame", "resume");
    }

    @Override
    public void dispose() {
        Gdx.app.log("LibgdxGame", "dispose");
    }   

}

Libgdx游戏的主要模块

Libgdx提供了5大模块让你方便的访问libgdx的服务,5个模块在backends都有具体的实现。
* Input - 提供了标准的输入让你方便访问各个平台,支持键盘、鼠标、加速器等
* Graphics - 基于OpenGL ES,让你方便的再屏幕上绘制图形
* Files - 抽象的文件系统,方便在各个平台上读写文件
* Audio - 在各个平台上加载和播放音乐
* Networking - 提供了各种方法来访问网络
下面图片显示了5个模块在游戏架构中的组成

Input 输入主要包含2种,一种是主动查询(Gdx.input.getX()),另外一种是事件监听(EventListener),input也提供方法来设置监听processors。下面方法查询鼠标在屏幕上的点击位置

if (Gdx.input.isTouched()) {
  System.out.println("Input occurred at x=" + Gdx.input.getX() + ", y=" + Gdx.input.getY()); 
}

Graphics 高度抽象的模块,用来和GPU进行通信,而且提供了获取OpenGL ES的方法。依赖于硬件,一些封装的OpenGL ES的版本可能不能用。Graphics同时提供了方法来生成Pixmaps 和 Textures。
下面方法是获取GL的版本,并且清屏把屏幕画成红色

GL20 gl = Gdx.graphics.getGL20 ();
gl.glClearColor(1f, 0.0f, 0.0f, 1);
gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

Files 提供抽象的方法来读写各个平台的文件。在写入文件的时候由于平台安全策略导致写入受限。加载纹理时用到的方法

Texture myTexture = new Texture(Gdx.files.internal(“assets/texture/brick.png”));

Audio 提供抽象的方法来加载和播放游戏中用到的声音资源。处理2中游戏声音 Music和Sound。支持的音频格式WAV, MP3 and OGG 。
Sound资源加载在内存中,一般处理游戏音效,比如爆炸声 枪声
Music资源以流媒体的形式从磁盘中读取,一般作为BGM

Music music = Gdx.audio.newMusic(Gdx.files.getFileHandle("data/myMusicFile.mp3", FileType.Internal));
music.setVolume(0.5f);
music.play();
music.setLooping(true);

你可能感兴趣的:(Libgdx生命周期和模块介绍)