Rabu, November 10

MODUL PRAKTIKUM LOW LEVEL USER INTERFACE

1. Menggambar Teks…





2.      Menggambar garis dengan warna


3.    Menggambar Segi empat
 

MODUL 4 LOW LEVEL USER INTERFACE


4.3 Canvas
            Canvas adalah subclass dari diri Playable. Itu adalah sebuah class abstrak yang harus  diextend sebelum sebuah aplikasi dapat menggunkaan fungsi-fungsi yang ada.
Canvas dapat digabungkan dengan subsclass displayable level tinggi yaitu Screen. Program dapat pindah ke dan dari canvas dan screen.
Canvas menggambarkan metode- metode event handing kosong. Aplikasi harus mengesampingkan mereka untuk handle event.
Class Canvas menggambarkan sebuah metode abstrak yang disebut paint(). Aplikasi menggunakan class canvas harus menyediakan sebuah implementasi untuk metode paint().
4.3.1  Sistem Koordinat
            Sistem koordinat dari canvas adalah berbasis nol. Koordinat x dan y dimulai dengan nol. Pojok kiri atas dari canvas berkoordinat (0,0). Koordinat x bertambah dari kiri ke kanan.Sedangkan koordinat y bertambah dari atas kebawah. Metode getWidth() dan getHeight() mengembalikan  nilai lebar dan tinggi berturut- turut.
            Pojok kanan bawah pada layar memiliki koordinat( getWidht()-1, getWidth()-1). Setiap perubahan yang terjadi pada ukuran yang diberikan untuk area menggambar pada canvas dilaporkan kepada aplikasi oleh metode sizeChanged(). Ukuran yang tersedia pada canvas mungkin saja berubah jika ada pergantian antara metode layar full dan normal atau penambahan dan pengurangan sebuah komponen seperti Command.



4.4 Grafik
            Class Graphic adlah class utama untuk menulis text, menggambar, garis, kotak dan sudut. Dia memiliki metode untuk menentukan warna, huruf, dan coretan.
4.4.1 Warna
            Class display memiliki metode untuk menentukan apakah sebuah memiliki fasilitas yang mendukung layar berwarna atau layar monochrome pada sebuah perangkat.
4.4.2 Huruf
            Sebuah huruf memiliki tiga atribut yaitu: Type, bentuk dan ukuran. Huruf tidak diciptakan oleh aplikasi. Sebagai gantinya, sebuah aplikasi meminta sistem untuk memilih model atribut huruf dan sistem mengembalikan huruf yang sesuai dengan model atribut yang diminta. Sistem tidak menjamin akna mengembalikan semua atribut yang dipilih. Jika sistem tidak menjamin huruf yang sesuai dengan permintaan, dia akan mengemabalikan sebuah huruf hampir mirip dengan atribut yang diminta.
            Huruf adalah sebuah class yang terpisah. Seperti yang dinyatakan diatas, aplikasi tidak menciptakan objek huruf. Sebuah gantinya, metode –metode statis getFont() dan getDefauktFont() digunakan untuk meminta sebuah huruf dari sistem.
4.4.3 Style Coretan
            Metode setStrokeStyle(int style) menetapkan style coretan bahwa akan digunakan untuk menggambar garis, sudut, dan kotak. Style coretan tidak mempengaruhi teks, gambar, dan operasi mewarnai.
4.4.4 Clipping
            Suatu bidang clipping  adalah suatu kotak didalam objek Graphics yang ada. Setiap operasi grafik hanya akan mempengaruhi pixel- pixel didalam area clip. Pixel yang berada diluar clippping tidak akan dipengaruhi oleh setiap operasi grafik.
4.4.5 Anchor Points
            Teks digambar sesuai dengan sebuah anchor points. Metode draw String() mengharap sebuah koordinat(x,y) sesuai dengan anchor points.
Public void drawString(String str, intx, int y, int anchor)
Anchor harus suatu kombinasi horisontal yang konstan( LEF, HCENTER, atau RIGHT)
Dan vertikal yang konstan (TOP, BASELINE atau BOTTOM). Horisontal dan vertikal yang konstan harus dikombinasikan menggunakan operator bitwise OR(|). Ini berarti menggambar teks berhubungan dengan base line dan horisontal tengah akan membutuhkan sebuah nilai anchor BASELINE | HCENTER.

4.5 Game API
4.5.1 Game API
            Aplikasi game memiliki peranan utama pada aplikasi mobile. Sebagian besar aplikasi dibuat pada pangsa pasara mobeli adalah games. Action, strategy, board and card games dan sebagainya. Seluruhnyaterdapat pada aplikasi mobile. SEbagian besar produsen game telah membuat API tersendiri untuk berbagai fungsi bermain game yang hanya akan bekerja pada handset yang dibuat oleh perusahaan tersebut. Hal ini berarti sebuah game yang dibangun  menggunakan API dari salah satu produsen tidak akan berjalan pada device  hasil produksi dari produsen lain.
Untuk menjembatani perbedaan ini, MIDP versi 2 telah memiliki fungsionalitas dasar yang secara spesifik ditujukan aplikasi game.
Class utama game API dari MIDP adalah class GameCanvas. Class GameCanvas merupakan perluasan dari class canvas yang kita gunakan dalam pembuatan low- level user interface. Dua kelemahan utama dari class canvas dalam pemrograman game adalah tidak memadainya kemampuan untuk mengatur proses repaint dak ketidakmampuan untuk mengatur bagaimana pointer events secara quick keys diteruskan oleh canvas .
Komponen user interface dari MIDP umumnya berupa event driven. Events berupa antrian berurutan dan diteruskan terhadap aplikasi satu persatu, beserta tunda waktu antar waktu dimana event dibuat( key press).
Game canvas memungkinkan aplikasi mengumpulkan events yang terbuat dan melakukan repaint pada canvas dengan cepat. Struktur program menjadi lebih bersih karena terdapat rangkaian perulangan utama dimana proses painting dan pengumpulan events dilakukan.
Games Canvas menggunakan teknik double buffering, seluruh proses pembuatan interface dilakukan di off screen buffer, kemudian di transfer dari area buffer tersebut menuju area yang terlihat pada canvas. Aplikasi anda harus menggunakan instance methos dari class Graphics berupa method getGraphics(). Setiap pemanggilan terhadap method ini mengembalikan sebuah instance baru dari off-screen buffer yang anda gunakan dalam proses pembuatan user interface.
Untuk memperbaharui screen tersebut, anda harus memanggil FlushGraphics() untuk melakukan proses repaint secara cepat dengan isi dari off-screen buffer. Perhatikan bahwa anda hanya perlu memamnggil method getGraphics() sekali saja, karena sebuah buffer teralokasi setiap kali anda memanggil method ini.

4.5.2 Layers
            Layers  adalah elemen visual dari sebuah screen. Layer adalah abstract class yang mempresentasikan object pada screen. Sprite dan TiledLayer adalah subclass dari class layer. Tiled layer adalah rangkaian dari beberapa persegi empat yang berukuran sama dan gambar yang menandai untuk menempatkan pada persegi empat tersebut.
Layer ini dibangun dengan menempatkan gambar dan elemen visual dalam area ini. Sebuah gambar dapat digunakan oleh lebih dari satu persegi empat sehingga dapat menghemat ruang dan memory. Tiled Layers  umumnya digunakan sebagai background pada game.
4.5.3.Sprites
            Srites adalah object grafis yang anda lihat pada game. Object ini dapat berupa character, kunci, tombol, pintu ataupun peluru. Sebuah sprite bersifat statis ataupun animasi. Animasi sprite terbuat dari beberapa elemen sprite dengan perbedaan kecil dan tersusun sedemikian hingga membentuk kesan bergerak. Rangkaian sprite ini disebut dengan frame.
4.5.4 LayerManager
            Class layermanager akan memberikan kemudahan dalam pengaturan keseluruhan sprites dan tiledlayer. Layer manager mengatur seluruh sprites dan tiledlayers yang anda buat. Dan anda tidak perlu untuk membuat object tersebut satu persatu. Layermanager yang akan melakukannya untuk anda. Layer manager juga mengatur pengurutan objek dari dasar hingga paling atas.
4.6 Scalable 2D Graphics
            JSR 226 menyediakan method untuk proses rendering dan transforming atas grafis vector-based 2D. Format gambar raster-based seperti GIF melakukan proses encode terhadap  pewarnaan pada tiap- tiap pixel pada area persegi empat yang menunjukan bentuk gambar. Gambar dengan tipe vector –based hanya memiliki instruksi penggambaran yang menentukan bagaimana pixel- pixel dari gambar tersebut  harus diwarnai. Vector tersebut merepresentasikan sebuah gambar yang berukuran jauh lebih kecil, sebuah nilai lebih dalam penggunaan resource pada mobile  devices.