Jumat, 08 April 2011

Mobile Game J2ME


Mobile game dengan J2ME mungkin sudah banyak beredar di kalangan pengguna handphone berbasis Java. Pada kesempatan kali ini saya akan mencoba untuk sedikit sharing bagaimana proses pembuatan atau pengaplikasian game tersebut pada sebuah komputer hingga sampai terinstal ke handphone beserta sedikit analisis mengenai alur dari game tersebut. 
Pertama kita harus membuat codingan (source code) game tersebut atau pada kali ini kita bisa unduh source code pada sebuah web xdebugx.net. Download source code yang bernama capture.
Setelah mendownload source code dari salah satu game yang akan kita coba pengaplikasiannya ke dalam perangkat komputer terlebih dahulu, selanjutnya pastikan di komputer kita sudah terinstal program-program pendukung, seperti :
1. JCreator
2. WirelessToolkit
3. Package java jre dan jdk 


Perancangan Program 

Sebelum memasuki tahap pembuatan program, disini saya akan menjelaskan sedikit tentang perancangan dari game ini. Secara garis besar terdapat 2 tahap perancangan game ini, yaitu 
1. Perancangan Sistem
2. Perancangan  Tampilan

Perancangan sistem dari game ini menggunakan diagram UML untuk menjelaskan alur perjalanan game ini atau bisa di lihat pada diagram UML dibawah ini.
1. Perancangan sistem menggunakan diagram Use Case

Gambar 1. Diagram Use Case

2. Perancangan sistem menggunakan Activity Diagram

 Gambar 2. Activity Diagram

Perancangan tampilan game ini, dibuat menggunakan software yang sangat kita kenal, yaitu Paint. Berikut ini adalah beberapa perancangan tampilan dari game ini.

 Gambar 3. Tampilan Awal

 Gambar 4. Menu Permainan

Gambar 5. Tampilan Permainan


Pembuatan Project J2ME

Setelah perancangan dari game tersebut terselesaikan dan ke 3 program pendukung sudah terinstal, langkah selanjutnya menjalankan program WirelessToolkit, sehingga muncul tampilan seperti ini.

Gambar 6. Tampilan WirelessToolkit

Untuk membuat sebuah project baru kita harus mengklik New Project, lalu dilanjutkan dengan mengisikan nama beserta MIDlet class name agar dapat dipanggil dalam pengeksekusian dengan program WirelessToolkit ini.

Gambar 7. Penamaan Project

Setelah pengisian nama dan MIDlet class, selanjutnya muncul sebuah tampilan untuk membuat sebuah pengaturan pada aplikasi yang akan kita buat ini. Pada pengaturan itu kita pilih MSA pada pilihan target platform dan klik ok. Setelah pengaturan tersebut selesai, kita kembali ke program awal WirelessToolkit untuk mengkompilasi program dengan cara memilih Build.

 Gambar 8. Kompilasi Project

Setelah proses pengkompilasian project maka secara otomatis akan terbentuk didalam folder C:\Documents and settings\...\j2mewtk\2.5.2\apps\Capture (secara default jika instalasi WirelessToolkit pada partisi C).

Analisis Program 

Setelah kita membuat project seperti langkah diatas, langkah selanjutnya yaitu membuat program dari game tersebut. Dalam game ini terdapat 4 class yaitu :
1. cutOff.java
2. About.java
3. GameThread.java
4. cutOffCanvas.java
Berikut ini adalah penjelasan dari class-class tersebut.

cutOff.java
Pada class pertama yaitu cutOff.java, disini merupakan dari program utama dari sebuah game ini. Dalam program ini berisikan perintah-perintah yang digunakan dalam game. Seperti perintah untuk keluar, perintah untuk menghentikan permainan, perintah melanjutkan permainan, perintah untuk memulai permainan dari awal dan beberapa perintah yang digunakan untuk mendeklarasikan perintah pada class myCutOffCanvas dan myGameThread.

package cutOff;
import java.util.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class cutOff extends MIDlet implements CommandListener {
  private Command myExitCommand = new Command("Keluar", Command.EXIT, 1);
  private Command myPauseCommand = new Command("Pause", Command.SCREEN, 2);
  private Command myGoCommand = new Command ("Melanjutkan",Command.SCREEN, 3);
  private Command myNewGameCommand = new Command ("Mulai",Command.SCREEN,4);
  private long pauseTime;
  cutOffCanvas myCutOffCanvas;
  GameThread myGameThread;

  public cutOff () {
    pauseTime=0;
                    myCutOffCanvas = new cutOffCanvas(this);
                                myCutOffCanvas.addCommand(myExitCommand);
                    myCutOffCanvas.addCommand(myNewGameCommand);
                                myCutOffCanvas.setCommandListener(this);
    
  }
  public void startApp() throws MIDletStateChangeException {
                                                myGameThread = new GameThread(myCutOffCanvas);
                                                                myCutOffCanvas.start();   
    myGameThread.go();
  }
 . . . . . .
About.java
Setelah program cutOff.java sudah terselesaikan, tahap selanjutnya adalah membuat class berikutnya, yaitu About.java. Dalam program ini berisi tentang penjelasan mengenai tatacara permainan dan tombol-tombol yang digunakan dalam permainan menangkap serangga.

package cutOff;
import javax.microedition.lcdui.*;
public class About {

    private static final String copyright =
                "MENANGKAP SERANGGA.\n\n"
      + "Cara Permainan\n"
      + "Memotong layar dengan hingga 80% atau menjebak salah satu kepik dengan cara menarik cursor hingga terbentuk garis yang nantinya akan memtong daerah yang telah terseleksi dengan cursor yang telah kita gerakan. Jangan sampai serangga itu menabrak garis yang sedang kita tarik, apabila itu terjadi lives dalam permainan ini akan berkurang dan setiap mulai 1 permainan anda akan diberikan 5 lives.\n\n"
      + "Tombol yang digunakan :\n"
      + "Atas atau 2 untuk menggerakkan cursor ke atas.\n"
      + "Bawah atau 8 untuk menggerakkan cursor ke bawah.\n"
      + "Kiri atau 4 untuk menggerakkan cursor ke kiri.\n"
      + "Kanan atau 6 untuk menggerakkan cursor ke kanan.\n"
     + "Ketika permainan berakhir tekan tombol Mulai untuk bermain lagi.\n"
                       + "Tekan tombol Keluar keluar dari permainan.\n"
                       + "Tekan tombol Pause untuk berhenti dan melihat layar bantuan.\n";

    private Displayable previous;
    private About() {};
    public static void showAbout(Display display) {

                Alert alert = new Alert("Tentang Menangkap Serangga");
                alert.setTimeout(Alert.FOREVER);
                alert.setString(copyright);
 . . . . . . 

GameThread.java
Program file GameThread.java berisikan tentang perintah yang digunakan selama permainan ini berlangsung, seperti perintah untuk mulai menjalankan permainan, menghentikan sementara permainan atau keluar dari permainan. Class ini berisi blok program agar permainan dapat berjalan.
package cutOff;
public class GameThread extends Thread {
  boolean myAlreadyStarted;
  cutOffCanvas myCutOffCanvas;
private long runTime;
final int MS_PER_FRAME=25;

                  GameThread(cutOffCanvas canvas) {
                                      myCutOffCanvas = canvas;
                  }

  void go() {
    if(!myAlreadyStarted) {
      myAlreadyStarted = true;
      start();
    } else {
    }
  }
  void pause() {
  }

  static void requestStop() {
  }
  public void run() {
       runTime=System.currentTimeMillis();

      while(true) {
      myCutOffCanvas.advance();

      long timeSinceStart=(System.currentTimeMillis()-runTime);
                  if (timeSinceStart<MS_PER_FRAME) {
                  try
                  {
                                   Thread.sleep(MS_PER_FRAME - timeSinceStart);
                  }
                  catch (java.lang.InterruptedException e)
                  {}
 . . . . . .

cutOffCanvas.java 
Pada class ini berisi tentang bagaimana pengaturan tampilan pada game tersebut. Seperti pengaturan warna background, pengaturan letak kursor atau pointer untuk penggambaran garis, cara pemotongan garis tersebut, letak koordinat dari garis, nyawa pemain, dan score pada permainan game tersebut. Program ini digunakan untuk membuat halaman Tampilan Permainan dan halaman Tampilan Menu Utama.

package cutOff;
import java.util.*;
import javax.microedition.lcdui.*;
import cutOff.About;
//import javax.microedition.lcdui.game.*;

public class cutOffCanvas extends Canvas {

  static int CORNER_X;
  static int CORNER_Y;
  static int width;
  static int height;
  Display myDisplay;

  cutOff myMiniGames;
  Random myRandom;
  private int ker;
  private boolean ballToggle;

  private boolean abouted;
  public boolean pausedAbouted;
 . . . . . .

Ujicoba Program

Tahap akhir setelah setelah program dibuat yaitu tahap ujicoba program. Game ini diuji coba dalam program WirelessToolkit, berikut ini adalah tampilan dari ujicoba game ini dalam WirelessToolkit.



Gambar 9. Tampilan Permainan

Implementasi ke Handphone

Setelah program berhasil diujicoba dan dijalankan, langkah selanjutnya adalah mengkompile package dari game ini agar dapat terinstal dan dapat dimainkan di handphone yang berbasis java. Cara mengkompile-nya yaitu dengan mengklik tab Project > Package > Create Package. Setelah itu tunggu beberapa saat dan pada direktori C:\Documents and Settings\...\j2mewtk\2.5.2\apps\Capture\bin akan muncul file bernama capture.jar dan file inilah yang akan kita kirim ke handphone agar dapat kita instal dan kita mainkan.
Demikianlah penjelasan sangat singkat terkait dengan perancangan, pembuatan, analisis dan pengimplementasian game J2ME. Semoga tulisan ini bisa bermanfaat bagi saya sendiri atau bagi para pembaca.

-sekian-

0 komentar:

Posting Komentar