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
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
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