tugas ke-5 mobile programming madhy lengkap

26
LAPORAN PRAKTIKUM MOBILE PROGRAMMING diajukan untuk memenuhi tugas praktikum ke 5 mata kuliah Mobile Programming pada jurusan Teknik Informatika Oleh : Rakhmadi Rahman (1083062) Kelas : III B PROGRAM DIPLOMA III TEKNIK INFORMATIKA POLITEKNIK POS INDONESIA BANDUNG 2010

Upload: rakhmadirahman

Post on 25-Jun-2015

183 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tugas Ke-5 Mobile Programming Madhy Lengkap

LAPORAN PRAKTIKUM

MOBILE PROGRAMMING

diajukan untuk memenuhi tugas praktikum ke 5 mata kuliah Mobile Programming

pada jurusan Teknik Informatika

Oleh :

Rakhmadi Rahman (1083062)

Kelas : III B

PROGRAM DIPLOMA III TEKNIK INFORMATIKA

POLITEKNIK POS INDONESIA

BANDUNG

2010

Page 2: Tugas Ke-5 Mobile Programming Madhy Lengkap

HALAMAN PENGESAHAN

Judul Praktikum : Low Level User Interface

Sub Judul Praktikum : 1. Canvas

2. Sistem Koordinat

3. Teks Canvas

4. Perintah

5. Event key, Aksi permainan, event pointer,

grafik, warna, style coretan, clipping, anchor

points, game API, layers, sprites dan scalable

2D graphics

Tanggal Praktikum : 06 November 2010

Tanggal Penyerahan Laporan : 12 November 2010

Tempat Praktikum : Laboratorium Komputer 306

Alat dan Software : 1. Laptop/PC

2. Wireless Toolkit 2.5

3. OS Windows 7 Home Premium

Kelas : III B

Nama : Rakhmadi Rahman (1083062)

Jurusan : Teknik Informatika

Bandung, November 2010

Menyetujui

Dosen Pengajar

Azizah Zakiah, S.Kom

Page 3: Tugas Ke-5 Mobile Programming Madhy Lengkap

KATA PENGANTAR

Puji syukur kami panjatkan ke hadirat Tuhan Yang Maha Esa yang atas

kurniaNya kami dapat menyelesaikan Laporan Praktikum ke-5 mata kuliah

Mobile Programming ini.

Adapun isi dari Laporan ini adalah mengenai mobile programming yaitu

Low Level Userinterface menggunakan Sun Wireless Tool Kit 2.5 yang kami

lakukan di Laboratorium komputer 306 Teknik Informatika pada pertemuan ke

lima masa perkuliahan di semester ganjil ini.

Demikian Laporan Praktikum Mobile Programming ini kami buat,

sebagai hasil praktikum yang telah kami lakukan pada semester ganjil ini. Kritik

dan saran yang membangun sangat kami harapkan sehingga kedepannya nanti

dapat lebih baik.

Penyusun,

Penulis

Page 4: Tugas Ke-5 Mobile Programming Madhy Lengkap

DAFTAR ISI

JUDUL LAPORAN ......................................................................................... i

HALAMAN PENGESAHAN.......................................................................... ii

KATA PENGANTAR .................................................................................... iii

DAFTAR ISI .................................................................................................... iv

I. LANDASAN TEORI ................................................................................. 1

1.1 Low User Interface ............................................................................... 1

1.2 Penggunaan Low User Interface .......................................................... 1

II. HASIL PRAKTIKUM DAN PEMBAHASAN ......................................... 2

Low Level User Interface ......................................................................... 2

2.1 Canvas ................................................................................................. 2

2.1.1 Sistem Koordinat.............................................................................. 2

2.1.2 Menampilkan teks Canvas ............................................................... 3

2.1.3 Perintah ............................................................................................ 4

2.1.4 Event Key ......................................................................................... 4

2.1.5 Aksi Permainan ................................................................................ 5

2.1.6 Event Pointer .................................................................................... 5

2.2 Grafik .................................................................................................. 6

2.2.1 Warna ............................................................................................... 6

2.2.2 Huruf ................................................................................................ 6

2.2.3 Style Coretan .................................................................................... 7

2.2.4 Clipping ............................................................................................ 7

2.2.5 Anchor Points ................................................................................... 7

2.2.6 Menggambar Teks............................................................................ 8

2.2.7 Menggambar Garis ........................................................................... 9

2.2.7 Menggambar Kotak.......................................................................... 11

2.2.7 Menggambar sudut ........................................................................... 12

2.2.8 Melukis Gambar ............................................................................... 13

2.3 Game API ........................................................................................... 13

2.3.1 Game API ......................................................................................... 13

2.3.2 Layers ............................................................................................... 13

2.3.3 Sprites............................................................................................... 13

2.3.4 Layer Manager ................................................................................. 14

2.4 Scalable 2D Graphics .......................................................................... 14

2.5 Hasil Praktikum .................................................................................. 15

2.6 Test Anchor Point ............................................................................... 16

III. KESIMPULAN ......................................................................................... 21

3.1 Kesimpulan ......................................................................................... 21

Page 5: Tugas Ke-5 Mobile Programming Madhy Lengkap

BAB I

LANDASAN TEORI

1.1 LOW USER INTERFACE

Sebelumnya telah dibahas tentang bagaimana cara membuat user interface

level tinggi seperti list, form, dan field input. Mereka bersifat user interface level

tinggi dan programmer tidak perlu khawatir tentang menggambar pixel layar atau

mengatur posisi teks pada layar. Semua program telah menetapkan jenis

komponen dan label elemen. Sistem tersebut akan menangani gambar pada layar,

scrolling dan layout.

Selanjutnya akan berhadapan langsung dengan layar dan akan mempelajari

class Canvas, dimana akan menjadi pendukung dari proses menggambar kita. Kita

juga akan menyelidiki ke dalam class Graphic, dimana memiliki metode untuk

menggambar garis, kotak, sudut, dan teks. Kita juga akan membahas huruf, warna

dan gambar.

1.2 PENGGUNAAN LOW USER INTERFACE

Saat memerlukan sebuah high-level untuk mengkontrol tampilan dari suatu

aplikasi

Saat aplikasi membutuhkan tempat yang tepat dari elemen-elemen yang ada

pada screen

Saat membuat game secara grafik; meskipun tetap dapat menggunakan

highlevel UI pada menu game, hal tersebut lebih disarankan untuk membuat

menu UI sendiri untuk menghindari seamless atmosphere bagi para user

Saat sebuah aplikasi membutuhkan akses ke low-level yang memiliki inputan

seperti key presses

Jika aplikasi akan diimplementasikan pada layar navigasi sendiri

Page 6: Tugas Ke-5 Mobile Programming Madhy Lengkap

BAB II

HASIL PRAKTIKUM DAN PEMBAHASAN

LOW LEVEL USER INTERFACE

2.1 CANVAS

Canvas adalah subclass dari Displayable. Itu adalah sebuah class abstrak

yang harus di-extend sebelum sebuah aplikasi dapat menggunakan fungsi-fungsi

yang ada. Canvas dapat digabungkan dengan subclass Displayable level tinggi

yaitu Screen.

Program dapat pindah ke dan dari Canvas dan Screen. Canvas

menggambarkan metode-metode event handling 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().

2.1.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 ke

bawah. Metode getWidth() dan getHeight() mengembalikan nilai lebar dan tinggi

berturut-turut.

Pojok kanan bawah pada layar memiliki koordinat (getWidth()-

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 mode layar full dan normal atau penambahan dan pengurangan

sebuah komponen seperti Command.

Page 7: Tugas Ke-5 Mobile Programming Madhy Lengkap

2.1.2 Menampilkan Teks menggunakan Canvas

Contoh Program

Hasil/Output Program

Page 8: Tugas Ke-5 Mobile Programming Madhy Lengkap

2.1.3 Perintah

Seperti halnya list, textBox, dan form, Canvas juga mempunyai Command

yang disediakan dan dapat merespon untuk event Command. Langkah-langkah

untuk menambahkan Command ke dalam Canvas adalah sama :

1. Buatlah objek Command.

private Command exitCommand = new Command("Exit", Command.EXIT, 0);

2. Gunakan useCommand() untuk menambahkan perintah ke dalam canvas(atau

Form, list, text box)

addCommand(exitCommand);

3. Gunakan setCommandListener() untuk mendaftarkan class mana yang akan

mendapat event command untuk perintah dalam Displayable.

setCommandListener(this);

4. Buatlah sebuah commandListener dengan mengimplementasikan class

commandListener dan menyediakan sebuah metode commction().

class HelloCanvas extends Canvas implements CommandListener {

...

public void commction(Command c, Displayable d) {

if (c == exitCommand){

// do something

}

}

2.1.4 Event Key

Subclass dari Canvas dapat merespon sebuah event tombol dengan metode

metode sebagai berikut :

keyPressed(int keyCode) Dipanggil ketika kunci ditekan

keyRepeated(int keyCode) Dipanggil ketika kunci diulang

keyReleased(int keyCode) Dipanggil ketika kunci dilepas

Page 9: Tugas Ke-5 Mobile Programming Madhy Lengkap

Canvas mendefinisikan kode tombol ini: KEY_NUM0, KEY_NUM1,

KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6,

KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_STAR, and KEY_POUND.

Untuk mendapatkan “String” nama sebuah kunci, gunakan metode

getKeyName(intkeyCode).

2.1.5 Aksi Permainan

Masing-masing kode tombol bisa dipetakan menjadi sebuah aksi game.

Sebuah key code bisa dipetakan kepada aksi sebuah game. Class Canvas

mendefinisikan aksi game ini : UP, DOWN, LEFT, RIGHT, FIRE, GAME_A,

GAME_B, GAME_C, GAME_D. Sebuah program dapat menerjemahkan sebuah

key code ke dalam aksi game menggunakan metode getGameAction(keyCode).

Metode getKeyCode(int gameAction) mengembalikan key code yang

berkaitan dengan suatu aksi game. Sebuah aksi game dapat memiliki lebih dari

satu key code yang berkaitan dengannya. Jika terdapat lebih dari satu key code

yang berkaitan dengan aksi game, hanya satu key code yang akan dikembalikan.

Sebuah aplikasi perlu menggunakan getGameAction(int keyCode)

daripada langsung menggunakan kode tombol yang telah didefinisikan. Secara

normal, jika suatu program ingin merespon kunci “UP”, sebaiknya menggunakan

kunci KEY_NUM2 atau key code yang spesifik untuk tombol UP. Program

menggunakan metode ini tidaklah portable sejak sebuah perangkat memiliki

layout kunci yang berbeda dan key code yang berbeda pula. KEY_NUM2

mungkin menjadi kunci “UP” untuk sebuah perangkat, tetapi mungkin juga

menjadi kunci “LEFT” untuk perangkat lainnya. GetGameAction() akan selalu

mengembalikan “UP”, tidak terikat pada kunci mana yang ditekan selama dia

adalah kunci “UP” di dalam konteks dari layout kunci sebuah perangkat.

2.1.6 Event Pointer

Disamping dari event key, program MIDP juga dapat mengatasi event

pointer. Hal ini bersifat benar jika sebuah perangkat memiliki sebuah pointer dan

hal tersebut diimplementasikan di dalam sistem JAVA pada sebuah perangkat.

Page 10: Tugas Ke-5 Mobile Programming Madhy Lengkap

Metode hasPointerEvents() mengembalikan nilai true jika sebuah

perangkat mendukung pointer yang bersifat ditekan dan dilepaskan. Metode

hasPointerMotionEvents() mengembalikan nilai true jika sebuah perangkat

mendukung event gerakan dari pointer.

public boolean hasPointerEvents()

public boolean hasPointerMotionEvents()

Sebuah event dapat di-generate oleh aktivitas pointer sebagai berikut:

pointerPressed, pointerReleased dan pointerDragged. Sebuah aplikasi

mengesampingkan metode-metode yang untuk diperhatikan ketika event ini

terjadi. Koordinat (x,y) dari event (ketika pointer ditekan, dilepas atau digeser)

ditetapkan didalam metode-metode callback ini.

protected void pointerPressed(int x, int y)

protected void pointerReleased(int x, int y)

protected void pointerDragged(int x, int y)

2.2 GRAFIK

Class Graphic adalah class utama untuk menulis teks, menggambar, garis,

kotak dan sudut. Dia memiliki metode untuk menentukan warna, huruf, dan

coretan.

2.2.1 Warna

Class Display memiliki metode untuk menentukan apakah sebuah

perangkat memiliki fasilitas yang mendukung layar berwarna atau layar

monochrome pada sebuah perangkat. Untuk mengatur warna yang digunakan

untuk metode grafik berikutnya, gunakan metode setColor(). SetColor() memiliki

dua bentuk:

public void setColor(int red, int green, int blue)

public void setColor(int RGB)

2.2.2 Huruf

Huruf adalah sebuah class yang terpisah. Seperti yang dinyatakan di atas,

aplikasi tidak menciptakan objek huruf. Sebagai gantinya, metode-metode statis

Page 11: Tugas Ke-5 Mobile Programming Madhy Lengkap

getFont() dan getDefaultFont() digunakan untuk meminta sebuah huruf dari

sistem.

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

2.2.4 Clipping

Suatu bidang clipping adalah suatu kotak di dalam objek Graphics yang

ada. Setiap operasi grafik hanya akan mempengaruhi pixel-pixel didalam area

clip. Pixel yang berada diluar clipping tidak akan dipengaruhi oleh setiap operasi

grafik.

2.2.5 Anchor Points

Teks digambar sesuai dengan sebuah anchor points. Metode drawString()

mengharap sebuah koordinat (x,y) sesuai dengan anchor points.

public void drawString(String str, int x, int y, int anchor)

Anchor harus suatu kombinasi horisontal yang konstan

(LEFT,HCENTER, atau RIGHT) dan vertikal yang konstan (TOP, BASELINE,

atau BOTTOM). Horisontal dan vertical yang konstan harus dikombinasikan

mengunakan operator bitwise OR (|). Ini berarti menggambar teks berhubungan

dengan baseline dan horisontal tengah akan membutuhkan sebuah nilai anchor

BASELINE | HCENTER

2.2.6 Menggambar Teks

Metode untuk menggambar teks dan karakter adalah :

Page 12: Tugas Ke-5 Mobile Programming Madhy Lengkap

public void

drawString(String str,

int x,

int y,

int anchor)

Menggambar teks dalam str menggunakan warna dan huruf yang tersedia.

(x,y) adalah koordinat titik anchor

Contoh Program

Hasil/Output Program

Page 13: Tugas Ke-5 Mobile Programming Madhy Lengkap

2.2.7 Menggambar Garis

Contoh pogram

Page 14: Tugas Ke-5 Mobile Programming Madhy Lengkap
Page 15: Tugas Ke-5 Mobile Programming Madhy Lengkap

Hasil/Output Program

Page 16: Tugas Ke-5 Mobile Programming Madhy Lengkap

2.2.8 Menggambar Kotak

Contoh Program

Hasil/Output Program

Page 17: Tugas Ke-5 Mobile Programming Madhy Lengkap

2.2.9 Menggambar Sudut

Contoh Program

Hasil/Output Program

Page 18: Tugas Ke-5 Mobile Programming Madhy Lengkap

2.2.10 Melukis Gambar

Gambar digambar dengan metode drawImage()

public void drawImage(Image img, int x, int y, int anchor)

Selama dengan drawString, x dan y adalah koordinat titik anchor.

Perbedaannya adalah bahwa vertikal anchor tetap adalah VCENTER yang

berdasar BASELINE.

2.3 GAME API

2.3.1 Game API

Aplikasi games memiliki peranan utama pada aplikasi mobile. Sebagian

besar aplikasi dibuat pada pangsa pasar mobile adalah games. Action, strategy,

board and card games dan sebagainya, seluruhnya terdapat pada aplikasi mobile.

\

2.3.2 Layers

Layers adalah elemen visual dari sebuah screen. Layer adalah abstract

class yang merepresentasikan objects pada screen. Sprite dan TiledLayer adalah

subclasses dari class Layer. Tiled Layer adalah rangkaian dari beberapa persegi

empat yang berukuran sama dan gambar – gambar yang memadai untuk

ditempatkan pada persegi empat tersebut.

Page 19: Tugas Ke-5 Mobile Programming Madhy Lengkap

Layer ini dibangun dengan menempatkan gambar – gambar dan elemen –

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

2.3.3 Sprites

Sprites adalah objects grafis yang 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 – perbedaan kecil dan tersusun sedemikian hingga membentuk kesan

bergerak. Rangkaian sprite ini disebut sebagai frame.

2.3.4 Layer Manager

Class LayerManager akan memberikan kemudahan dalam pengaturan

keseluruhan Sprites dan TiledLayers. LayerManager mengatur seluruh Sprites dan

TiledLayers yang buat. Dan tidak perlu untuk membuat seluruh object tersebut

satu persatu. LayerManager yang akan melakukannya untuk . LayerManager juga

mengatur pengurutan objek dari dasar hingga paling atas.

2.4 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

menunjukkan 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

Page 20: Tugas Ke-5 Mobile Programming Madhy Lengkap

2.5 HASIL PRAKTIKUM LAB 306

Quiz Program

Hasil/Output Program

Page 21: Tugas Ke-5 Mobile Programming Madhy Lengkap

2.6 TEST ANCHOR POINT

Program Test Anchor Point

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class madhy_test extends MIDlet{

private Display display;

private TextCanvas canvas;

private AnchorPtList anchorPt;

private int anchorPoint = Graphics.BASELINE | Graphics.HCENTER;

public madhy_test(){

display = Display.getDisplay(this);

canvas = new TextCanvas(this);

anchorPt = new AnchorPtList("Anchor point", List.IMPLICIT, this);

}

protected void startApp() {

showCanvas();

}

protected void pauseApp() { }

protected void destroyApp( boolean unconditional ) { }

public void showCanvas() {

display.setCurrent(canvas);

}

public void showList(){

display.setCurrent(anchorPt);

}

public int getAnchorPoint(){

return anchorPoint;

}

public void setAnchorPoint(int anchorPoint){

Page 22: Tugas Ke-5 Mobile Programming Madhy Lengkap

this.anchorPoint = anchorPoint;

}

public void exitMIDlet() {

destroyApp(true);

notifyDestroyed();

}

}

class TextCanvas extends Canvas implements CommandListener{

private Command cmExit;

private Command cmGetAnchorPt;

private madhy_test midlet;

public TextCanvas(madhy_test midlet) {

this.midlet = midlet;

cmExit = new Command("Exit", Command.EXIT, 1);

cmGetAnchorPt = new Command("Anchor", Command.SCREEN, 2);

addCommand(cmExit);

addCommand(cmGetAnchorPt);

setCommandListener(this);

}

protected void paint(Graphics g){

int xcenter = getWidth() / 2,

ycenter = getHeight() / 2;

g.setColor(255, 255, 255);

g.fillRect(0, 0, getWidth(), getHeight());

g.setColor(0, 0, 0);

g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN,

Font.SIZE_MEDIUM));

g.drawLine(xcenter, ycenter, xcenter, ycenter);

g.drawString("Ayo...Madhy...Semangat!!!", xcenter, ycenter,

midlet.getAnchorPoint());

}

Page 23: Tugas Ke-5 Mobile Programming Madhy Lengkap

public void commction(Command c, Displayable d) {

if (c == cmExit)

midlet.exitMIDlet();

else if (c == cmGetAnchorPt){

// panggil method untuk menampilkan list

midlet.showList();

}

}

}

class AnchorPtList extends List implements CommandListener{

private madhy_test midlet;

public AnchorPtList(String title, int listType, madhy_test midlet) {

super(title, listType);

this.midlet = midlet;

append("Top/Left", null);

append("Top/HCenter", null);

append("Top/Right", null);

append("Baseline/Left", null);

append("Baseline/HCenter", null);

append("Baseline/Right", null);

append("Bottom/Left", null);

append("Bottom/HCenter", null);

append("Bottom/Right", null);

setCommandListener(this);

}

public void commction(Command c, Displayable s) {

switch (getSelectedIndex()) {

case 0:

midlet.setAnchorPoint(Graphics.TOP | Graphics.LEFT);

break;

case 1:

Page 24: Tugas Ke-5 Mobile Programming Madhy Lengkap

midlet.setAnchorPoint(Graphics.TOP | Graphics.HCENTER);

break;

case 2:

midlet.setAnchorPoint(Graphics.TOP | Graphics.RIGHT);

break;

case 3:

midlet.setAnchorPoint(Graphics.BASELINE | Graphics.LEFT);

break;

case 4:

midlet.setAnchorPoint(Graphics.BASELINE | Graphics.HCENTER);

break;

case 5:

midlet.setAnchorPoint(Graphics.BASELINE | Graphics.RIGHT);

break;

case 6:

midlet.setAnchorPoint(Graphics.BOTTOM | Graphics.LEFT);

break;

case 7:

midlet.setAnchorPoint(Graphics.BOTTOM | Graphics.HCENTER);

break;

case 8:

midlet.setAnchorPoint(Graphics.BOTTOM | Graphics.RIGHT);

break;

default:

midlet.setAnchorPoint(Graphics.BASELINE | Graphics.HCENTER);

}

midlet.showCanvas();

}

}

Page 25: Tugas Ke-5 Mobile Programming Madhy Lengkap

Hasil/Output Program

Page 26: Tugas Ke-5 Mobile Programming Madhy Lengkap

BAB III

KESIMPULAN

3.1 Kesimpulan

Adapun kesimpulan yang dapat diperoleh berdasarkan hasil pembahasan dan

praktikum, yaitu:

Penggunaan Low Level user interface yaitu Saat memerlukan sebuah high-

level untuk mengkontrol tampilan dari suatu aplikasi, Saat aplikasi

membutuhkan tempat yang tepat dari elemen-elemen yang ada, Saat

membuat game secara grafik; meskipun tetap dapat menggunakan

highlevel UI pada menu game, hal tersebut lebih disarankan untuk

membuat menu UI sendiri untuk menghindari seamless atmosphere bagi

para user, Saat sebuah aplikasi membutuhkan akses ke low-level yang

memiliki inputan seperti key presses, Jika aplikasi akan

diimplementasikan pada layar navigasi sendiri

Di dalam Low Level User Interface akan dikenal beberapa istilah seperti

canvas, system koordinat, perintah, event key, aksi permainan, event

pointer, grafik, warna, huruf, style coretan, clipping, anchor points,

menggambar teks, garis, kotak, sudut, melukis gambar, game API, layers,

sprite, layer manager dan scalable 2D graphics.