Senin, 19 November 2012

Lab Activity - Thread & Sprite

Mengenal class GameCanvas
  • class GameCanvas menyediakan fungsi-fungsi penting dalam menangani antar muka game.
  • Merupakan turunan dari class Canvas (commands, input events, etc.), dengan penambahan fitur antara lain kemampuan game yang spesifik seperti: off-screen graphic buffer dan kemampuan untuk mengetahui status key-key input dari key-key pada HP.
  • class GameCanvas pada MIDP 2.0 telah mengusung fitur-fitur penting yang mengatasi masalah yang ada pada MIDP 1.0. Yaitu sekarang kita cukup menggunakan sebuah (single) buffer untuk setiap obyek GameCanvas yang dibuat.
  • Ini sangat penting karena tidak hanya meminimalkan penggunaan heap memory yang digunakan oleh game. Tetapi juga agar game bisa dikontrol dengan hanya menggunakan sebuah (single) loop.
  • Karena menggunakan teknik buffering pada GameCanvas, yang disebut double buffering, penggambaran pada screen/display dilakukan otomatis (tanpa mendefinisikan sebuah thread tersendiri).
  • Kita hanya perlu memanggil method flushGraphics() untuk menampilkan graphics ke display.
  • Teknik Double Buffering tersebut dimaksudkan untuk menghindari flickering (efek berkedip) pada display dengan cara menggambar graphics ke file image sementara (temporary) secara off set (di background), dan akan ditampilkan ke display begitu file image sudah terisi graphics lengkap
Pengenalan Sprite
       Salah satu faktor yang membuat keberhasilan game adalah grafis yang unggul. Sebagian besar objek pada sebuah game dikategorikan sebagai grafis khusus yang disebut sprites. Sebuah sprite dapat berupa  bullet, monster, karakter utama, musuh, kekuatan spesial, kunci dan pintu.
       Pada umumnya  Sprite adalah grafis animasi. Grafis animasi dibuat dari  sprite yang sama namun berbeda penampakannya. Kumpulan sprite biasanya mengacu sebagai sebuah kumpulan  frame. Frame ini dapat dibuat secara terurut ataupun tidak terurut. Umumnya sprites ditampilkan secara terurut untuk memudahkan pengkodean.

Pengertian Thread
Thread yaitu kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan tugas tersendiri. Dengan adanya thread, dapat membuat program yang lebih efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread umumnya digunakan untuk pemrograman multitasking, networking, yang melibatkan pengaksesan ke sumber daya secara konkuren.
Ada dua cara yang bisa digunakan dalam membuat sebuah thread, yaitu :
1. Membuat subclass dari thread

Untuk menjalankan thread, dapat dilakukan dengan start(). Saat start() dijalankan, maka  sebenarnya     method dijalankan. Jadi untuk membuat thread, harus mendefinisikan pada definisi class. Konstruktor dari cara ini adalah :
   ClassThread namavar = new ClassThread();
Namavar.start();
Atau dapat juga langsung dengan cara:
   New ClassThread().start();

2. Mengimplementasikan interface Runnable

Cara ini merupakan cara yang paling sederhana dalam membuat thread. Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface ini hanya cukup mengimplementasikan fungsi run(). Dalam mengimplementasi fungsi run(), kita akan mendefinisikan instruksi yang membangun sebuah thread. Konstruktor dari cara ini adalah :
   ObjekRunnable objek = new ObjekRunnable();
Thread namavar = new Thread(Objek Runnable);
Atau dengan cara singkat seperti :
New Thread(new ObjekRunnable());
  

Thread - Lab Activity

Class dalam project Thread
Class mainGame.java

Class MyThread.java



Class Counter.java

Hasil Running

Sprite - Lab Activity
**contoh sprite 1
    a. class dalam sprite
   b. class ContohSprite1.java


 c. Class ContohGameCanvas.java




**contoh sprite2
    a. class sprite 2
    b. source ContohSprite2.java