Jumat, 01 Agustus 2014

LibGdx[1] => BitmapFont

Dari penulisan judul, mungkin terasa agak nyeleneh. :D Karena menggunakan array. Ya, tulisan ini direncanakan dibuat beberapa seri untuk memperkenalkan LibGdx. Dan, ini adalah tulisan pertama. Hm.... kemana LibGdx[0]? Ya, tentu saja LibGdx[0] akan dibuat untuk pengenalan LibGdx, tetapi jika Anda tidak sabar, Anda bisa cari sendiri apa itu LibGdx.

Mari kita lanjutkan post ini...

Salah satu hal yang paling penting dalam membuat game khususnya dengan menggunakan library libgdx adalah membuat tulisan.

Berikut adalah cara untuk membuat tulisan dengan BitmapFont class pada libgdx.

1. Buat project libgdx Anda.

2. Import kedalam Eclipse atau IDE favorit Anda

3. Pada kelas yang dibuat secara default oleh libgdx, ganti extends ApplicationAdapter menjadi implements ApplicationListener seperti dibawah ini;

public class MyGdxGame implements ApplicationListener {
    SpriteBatch spriteBatch;
    BitmapFont font;

}


4. Pada bagian diatas, Anda diminta untuk unimplements ApplicationListener, maka klik unimplements dan jangan lupa import class yang terkait dengannya. Sehingga permulaannya akan terlihat seperti dibawah ini;

package com.mygdx.game;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class MyGdxGame implements ApplicationListener {

 
 @Override
 public void create () {
  
 }

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

 @Override
 public void resize(int width, int height) {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void pause() {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void resume() {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void dispose() {
  // TODO Auto-generated method stub
  
 }
}


5. Tambahkan variabel SpriteBatch dan BitmapFont diantara public class dan onCreate agar dikenali.

6. Method onCreate bertugas untuk membuat pengenalan semua objek dan properti yang akan Anda render sehingga Anda harus membuat objek atau menambahkan properti pada bagian ini.

        [...]
        SpriteBatch spriteBatch;
 BitmapFont font;
 
 @Override
 public void create () {
  spriteBatch = new SpriteBatch();
  font = new BitmapFont();
 }
        [....]

7. Satu hal yang paling penting adalah, dispose method. Dalam bahasa Indonesia, dispose berarti membuang. Method ini tidak boleh dilupakan. Method dispose ini berguna untuk membuang memori yang tersimpan pada saat render sehingga kerja komputer menjadi lebih ringan.

 
        @Override
 public void dispose() {
  spriteBatch.dispose();
  font.dispose();
 }

8. Setelah kita definisikan semua variabel dan saatnya kita berpindah pada bagian render dan membuat tulisan pada bagian render.
        @Override
 public void render () {
  Gdx.gl.glClearColor(1, 0, 0, 1);
  Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
  
  spriteBatch.begin();
  font.draw(spriteBatch, "Ini adalah tulisan", 100, 100); //membuat tulisan pada koordinat (x,y) => (100,100)
  spriteBatch.end();
 }

Pada kode diatas, kita bisa melihat kalau tulisan dirender pada koordinat (100,100) dimana secara default sistem koordinat pada libgdx menempatkan (0,0) pada bagian bawah kiri.

Ketika aplikasi dijalankan, akan terliat seperti gambar berikut;