Layer Manager Java Unknown 2:35:00 pm Layer Manager LayerManager adalah subClass dari GameCanvas Untuk menambahkan sebuah layer, method append(Layer layer) telah tersedia LayerManager layer = new LayerManager(); layerManager.append(layer); Untuk mendapatkan sebuah layer dengan indeks yang spesifik, menggunakan method getLayerAt(int index). Untuk memperoleh jumlah total layer pada LayerManager gunakan method getSize(). Untuk menghapus sebuah layer gunakan method remove(Layer layer). Untuk menambahkan sebuah layer pada indeks yang khusus gunakan method insert(Layer layer, int index) yang akan mengijinkan Anda untuk melakukan hal tersebut. Untuk menampilkan layer panggil method paint(Graphics g, int x, int y). J.E.N.I.Bab 6Layer Manager6.1 TujuanSetelah mempelajari bab ini, Pelajar diharapkan mampu untuk :• Memahami dan menggunakan class LayerManager• Menggambar beberapa sprite dan di satukan pada LayerManager• Menentukan posisi titik awal LayerManager pada screen mobile• Mengatur besar screen yang di tampilkan pada mobile• Menggambar animasi pada LayerManager6.2 PengenalanPada bab sebelumnya, kita telah membahas class sprite, tentu saja kita denganmudah meletakkan lebih dari sebuah sprite pada layar tetapi bagaimana denganpemandangan. Pada hakekatnya semua game memiliki background yangdianimasikan atau tetap, untuk memberikan efek visual. Disinilah awal mulanyaLayerManager, sesuai namanya, yaitu mengelola layer grafis.6.3 Penggunaan LayerManagerLayerManager adalah subClass dari GameCanvasUntuk menambahkan sebuah layer, method append(Layer layer) telah tersediaLayerManager layer = new LayerManager();layerManager.append(layer);Pengembangan Mobile Game 1J.E.N.I.Untuk mendapatkan sebuah layer dengan indeks yang spesifik, menggunakanmethod getLayerAt(int index). Untuk memperoleh jumlah total layer padaLayerManager gunakan method getSize(). Untuk menghapus sebuah layer gunakanmethod remove(Layer layer). Untuk menambahkan sebuah layer pada indeks yangkhusus gunakan method insert(Layer layer, int index) yang akan mengijinkan Andauntuk melakukan hal tersebut. Untuk menampilkan layer panggil methodpaint(Graphics g, int x, int y).6.3.1 Menggambar di LayerMangerPada sesi sebelumnya method yang disebutkan cukup jelas dan Peserta benar-benardapat mengimplementasikannya tanpa menggunakan LayerManager. Walaupundemikian, ada satu method yang menyediakan fitur yang tepat, yaitu methodsetViewWindow(int x, int y, int width, int height). Fitur ini mengijinkan Anda untukmeng-set ukuran jendela yang dapat dilihat oleh user dan bagian dari layer yangditampilkan. untuk lebih mudah dimengerti dengan melihat gambar berikut ini.Gambar 1: Sistem LayerManagerUntuk mengeset tampilan menggunakan method setViewWindowMethod yang diimplementasikan pada diagram diatas adalahsetViewWindow(90,10,128, 128). Dua pertama menunjukkan letak gambar dariPengembangan Mobile Game 2J.E.N.I.sudut kiri atas dengan koordinat pada (90,10). Dua angka kedua 128 x 128menunjukkan ukuran lebar dan tinggi yang sekarang digunakan.GameCanvas menggunakan LayerManager:.......public class ExampleGameCanvas extends GameCanvas implements Runnable {.......// Penggunaan Spritesprivate Sprite playerSprite;private Sprite backgroundSprite;// Layer Managerprivate LayerManager layerManager;// Konstruktor dan inisialisasipublic ExampleGameCanvas() throws Exception {..........// Memuat gambar untuk SpriteImage playerImage = Image.createImage("/pesawat.png");playerSprite = new Sprite (playerImage,40,40);Image backgroundImage = Image.createImage("/background.png");backgroundSprite = new Sprite(backgroundImage);layerManager = new LayerManager();layerManager.append(playerSprite);layerManager.append(backgroundSprite);}// Method untuk menampilkan grafisprivate void drawScreen(Graphics g) {.........// menampilkan semua layerlayerManager.paint(g,0,0);flushGraphics();}}Pengembangan Mobile Game 3J.E.N.I.6.3.2 ”LayerManager sederhana”Gambar 2: Sprite di LayerManagerPengembangan Mobile Game 4J.E.N.I.LayerManager menggunakan method setViewWindowPada demonstrasi penggunaan setViewWindow sebelumnya, berikut ini adalahpotongan kodenya (timpalah method drawScreen).// Method untuk menampilkan grafisprivate void drawScreen(Graphics g) {g.setColor(0xffffff);g.fillRect(0, 0, getWidth(), getHeight());g.setColor(0x0000ff);// update posisi spriteplayerSprite.setPosition(currentX,currentY);// menampilkan semua layerlayerManager.setViewWindow(55,20,140,140);layerManager.paint(g,20,20);flushGraphics();}Yang peru diperhatikan bahwa penggunaan metod setViewWindow pada tampilanarea mobile akan pada posisi ditengah layar. jika Anda ingin mengatur posisi areaini, Anda perlu meletakkan nilai tepat ke dalam metod paint yang pada yaitu untukmeletakkan di tengah layar nilai yang digunakan adalah 20 pixel pada sumbu x dan20 pixel pada sumbu y. Nilai ini akan mengimbangi layar itu sendiri. Contohnya padagambar 3.Pengembangan Mobile Game 5J.E.N.I.6.3.3 Animasi pada LayerManagerGambar 3: letak titik awal di LayerManagerAnda mungkin telah mengetahui bahwa gambar background yang telah kita gunakanlebih besar dari tampilan layar itu sendiri.Pada contoh ini, dimulai pada titik (90,10). Semua yang telah Anda lakukan adalahmembuat nilai 90 menjadi sebuah nilai dinamis sehingga dapat diturunkan jika Andaingin menggeser latar belakang ke kiri atau menaikkan nilainya jika Anda inginmenggeser latar belakang ke kanan.Kode berikut ini mengilustrasikan bagaimana hal ini dapat dilakukan, untuk lebihmudahnya sprite smiley hijau telah dihilangkan dan sekarang jika Anda menekan tombolkanan game akan menggeser ke kanan dan jika Anda menekan tombol kiri game makagambar akan bergeser ke kiri.Pengembangan Mobile Game 6J.E.N.I.Sebagai catatan, hanya nilai horizontal yang dibuat dinamis, tidak akan terjadi apa-apajika Anda menekan tombol ke atas dan ke bawah.Animasi pada LayerManager......public class ExampleGameCanvas extends GameCanvas implements Runnable {.........Image backgroundImage;private Sprite backgroundSprite;private LayerManager layerManager;// Metode untuk menangani masukan userprivate void input() {int keyStates = getKeyStates();if ((keyStates & RIGHT_PRESSED) != 0) {scnX = Math.min(getWidth(), scnX + 1);}if ((keyStates & LEFT_PRESSED) != 0) {scnX = Math.max(0, scnX - 1);}}// Metode untuk menampilkan grafisprivate void drawScreen(Graphics g) {..........layerManager.setViewWindow(scnX,scnY,140,140);layerManager.paint(g,20,20);flushGraphics();}}Pengembangan Mobile Game 7J.E.N.I.Bergerak ke kiri Bergerak ke kananGambar 6.4Animasi background sederhana menggunakan LayerManagerTekanlah tombol kiri atau kanan pada game untuk melihat efek animasi pergerakanbackground.Pengembangan Mobile Game 8