Struktur program untuk sesebuah game libGDX agak lain daripada program GUI yang biasa (seperti JavaFX) kerana melibatkan sesuatu yang dipanggil sebagai game loop yang akan sentiasa update semua benda yang ada di dunia game tersebut. Contohnya, seperti game Mario. Kita boleh kawal pergerakan Mario, dan pada masa yang sama watak-watak jahat juga bergerak dengan pergerakan masing-masing.

Sebelum ini kita ada test untuk mula-mula run program libGDX. Code yang asalnya adalah seperti ini:

package com.mygdx.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class MyGdxGame extends ApplicationAdapter {

  SpriteBatch batch;
  Texture img;

  @Override
  public void 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();
  }
}

Perhatikan class MyGdxGame extends daripada class ApplicationAdapter. Sekarang kita lihat class ApplicationAdapter di laman web libGDX dan kita boleh nampak method-method yang ada di situ.

create()

Dipanggil semasa mula-mula kita start game. Biasanya di sini kita akan letakkan code untuk load asset (seperti gambar sprite, gambar background, bunyi, dan sebagainya) untuk game.

resize()

Dipanggil semasa screen Game bertukar saiz.

render()

Method untuk tentukan apa yang terpapar pada screen game. Di sinilah kita boleh letakkan code untuk update game.

pause()

Boleh paham sendiri, untuk pause game.

resume()

Boleh paham sendiri, untuk sambung balik game selepas pause.

dispose()

Method selepas game ditutup. Di sini kita boleh letakkan code untuk clear memory phone sebab libGDX bukanlah 100% Java tetapi ada campuran dengan native language (C/C++) untuk tujuan performance. Apabila kita menggunakan native language, kita kena buat memory management sendiri.

Game screen

Selepas lihat method-method tersebut, barulah kita ada idea bagaimana untuk menulis code untuk sesebuah game. Tetapi sebelum itu, ada satu masalah. Katakanlah game kita ada beberapa screen, contohnya screen untuk tunjuk main menu, screen untuk game, dan screen untuk tunjuk score. Jika kita menggunakan ApplicationAdapter sahaja maka berteraburlah code untuk game.

Oleh itu, libGDX ada menyediakan class Game.

Di situ kita boleh nampak satu lagi method iaitu setScreen() supaya kita boleh asingkan game tersebut mengikut Screen.