Web Teknologi 3 (MKB721C) Minggu 1 2 Page 1 MINGGU 12 Web Teknologi 3 (MKB721C) Pokok Bahasan: – Game API Tujuan Instruksional Khusus: –Siswa memahami.

Slides:



Advertisements
Presentasi serupa
Menggambarkan Data: Tabel Frekuensi, Distribusi Frekuensi, dan Presentasi Grafis Chapter 2.
Advertisements

Dasar dasar GUI programming di Java
MS. POWER POINT 2007 Kelas XII Semester 2
Array.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation. All.
Kuliah Ke-2 Matriks Jarang dan Pengalamatan Matriks (Bab 2)
Algoritma & Pemrograman #10
Array Multidimensi MATRIK.
MELAKUKAN INSTALASI SISTEM OPERASI WINDOWS XP
Memulai Drive Test menggunakan TEMS Investigation 6.1.4
Process to Process Delivery
Pemrograman Berorientasi Objek
PERULANGANPERULANGAN. 2 Flow of Control Flow of Control refers to the order that the computer processes the statements in a program. –Sequentially; baris.
Slide 3-1 Elmasri and Navathe, Fundamentals of Database Systems, Fourth Edition Revised by IB & SAM, Fasilkom UI, 2005 Exercises Apa saja komponen utama.
Introduction to The Design & Analysis of Algorithms
Database Create-Retrieve-Update-Delete (CRUD)
PROSES PADA WINDOWS Pratikum SO. Introduksi Proses 1.Program yang sedang dalam keadaan dieksekusi. 2.Unit kerja terkecil yang secara individu memiliki.
Review Operasi Matriks
Internal dan Eksternal Sorting
Restricting and Sorting Data
Pengantar/pengenalan (Introduction)
Could not load an object because it is not avaliable on this machine. Tidak dapat memuat sebuah benda karena tidak tersedia pada mesin ini.
Interface Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Oracle Developer/2000. Developer/2000 Products FormsReportsGraphics.
Bilqis1 Pertemuan bilqis2 Sequences and Summations Deret (urutan) dan Penjumlahan.
Lily Puspa Dewi1 PPA Pertemuan ke – 2 Site Management Chapter 3 & 4.
JAVA CLASS Bahasa Pemrogramam BAHASA PEMROGRAMAN PERTEMUAN #9.
Risk Management.
Menggunakan OLE Drag-Drop
Menggunakan Drag-Drop
Implementing an REA Model in a Relational Database
FreeRTOS Tutorial.
Praktikum 9 Pemrograman Berbasis Obyek
AUSTRALIA INDONESIA PARTNERSHIP FOR EMERGING INFECTIOUS DISEASES Memformat sel menjadi text.
MIDlet User Interface (3) As’ad Djamalilleil
1 Magister Teknik Perencanaan Universitas Tarumanagara General View On Graduate Program Urban & Real Estate Development (February 2009) Dr.-Ing. Jo Santoso.
Array
Switch. Perluasan dari bridge Arsitektur switch: – Store and forward.
Function, Procedure, Unit
AUSTRALIA INDONESIA PARTNERSHIP FOR EMERGING INFECTIOUS DISEASES 3. MERAPIKAN DATA.
Slide 1 QUIS Langkah pertama caranya Buat di slide pertama judul Slide kedua soal Slide ketiga waktu habis Slide keempat jawaban yang benar Slide kelima.
Selamat Datang Peserta Workshop
AUSTRALIA INDONESIA PARTNERSHIP FOR EMERGING INFECTIOUS DISEASES Excel tingkat menengah – Bagan (lanjutan) Location Date Name.
PEMROGRAMAN PPBD (UAS) SEBELUM MELANGKAH KE TAHAP SELANJUTNYA BERDOA DULU BIAR LANCAR DAN GA EROR
Linked List dan Double Linked List
Sprite Setiap objek dalam game yang memiliki gambar dan karakteristik.
Antarmuka Tingkat Bawah (Canvas)
Definisi VLAN Pemisahan jaringan secara logis yang dilakukan pada switch Pada tradisional switch, dalam satu switch menunjukkan satu segmentasi LAN.
MACROMEDIA FLASH. PERTEMUAN II Lesson 04 : Layers Movie Properties (Ctrl + M) Stage : Interface ( View | Rulers dan Grid) Tweening : MOTION Tweening :
By. Rita Wiryasaputra Daftar Pustaka Panduan Membuat Aplikasi Database dengan PHP, Syafii, Yogyakarta, Andi Offset, 2005 Membangun Website Dinamis dan.
Macromedia Flash Pro 8.:: Fundamentals Workshop
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Fungsi dan Protokol Layer Aplikasi Network Fundamentals – Chapter 3.
Operator dan Assignment Pertemuan 3 Pemrograman Berbasis Obyek Oleh Tita Karlita.
Lecture 8 Set and Dictionary Sandy Ardianto & Erick Pranata © Sekolah Tinggi Teknik Surabaya 1.
Structured Query Language (SQL)
Pengantar TI (MKK103S) Minggu 3 Page 1 MINGGU 3 Pengantar TI (MKK103S) Agenda 1.Logical nested if 2.Format currency rupiah 3.Fungsi left, right & mid.
Via Octaria Malau Transfer (Internal Transfers) Transfer (Transfers Internal) Select the account from which funds are to be transferred FROM and then select.
Web Teknologi I (MKB511C) MINGGU 3 Web Teknologi I (MKB511C) Minggu 3 Page 1 Pokok Bahasan: MySQL Tujuan Instruksional Khusus: Agar mahasiswa dapat mengetahui.
Double Linked List. © 2005 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Double Linked List Sama seperti single linked list, double.
Web Teknologi 3 (MKB721C) Minggu 11 Page 1 MINGGU 11 Web Teknologi 3 (MKB721C) Pokok Bahasan: –Canvas lanjutan Tujuan Instruksional Khusus: –Siswa memahami.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Pengalamatan Jaringan – IPv4 Dosen Pengampu: Resi Utami Putri, S.Kom.,
Retrosintetik dan Strategi Sintesis
Web Teknologi I (MKB511C) Minggu 12 Page 1 MINGGU 12 Web Teknologi I (MKB511C) Pokok Bahasan: – Text processing perl-compatible regular expression/PCRE.
Person 19 || Marty Rori 1. Apa yang Buruk Tentang Menggunakan? Vairables global? 2 tidak aman!  Jika dua atau lebih programmer bekerja sama dalam program,
DANDC wijanarto.
MEMBUAT DATABASE LEWAT KODE PROGRAM
AUSTRALIA INDONESIA PARTNERSHIP FOR EMERGING INFECTIOUS DISEASES PELATIHAN EXCEL DASAR.
Lecture 2 Introduction to C# - Object Oriented Sandy Ardianto & Erick Pranata © Sekolah Tinggi Teknik Surabaya 1.
Slide 1 Chapter 1: Introduction to Systems Analysis and Design Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc.
MICROSOFT EXCEL 2000 Bagian #4 GRAPHICS : OBJECT & CHART.
Transcript presentasi:

Web Teknologi 3 (MKB721C) Minggu 1 2 Page 1 MINGGU 12 Web Teknologi 3 (MKB721C) Pokok Bahasan: – Game API Tujuan Instruksional Khusus: –Siswa memahami perbedaan GameCanvas & Canvas –Siswa memahami bagaimana penggunaan Game API

Agenda Game API GameCanvas & Canvas Mengendalikan animasi

Game API Java ME Game API Java ME dibangun dari class Canvas & class Graphics Class Game API: javax.microedition.lcdui.game Game API memberikan fungsi: 1.animation 2.key polling

Class pada lcdui.game 1.GameCanvas: memberikan dasar untuk game user interface termasuk off-screen graphics buffer dan membaca status key. 2.Layer: class abstrak yang menampilkan elemen-elemen visual pada game. Subclass layer harus mengiplementasi method paint(Graphics). 3.LayerManager: mengendalikan resource layer The LayerManager manages a series of Layers. 4.Sprite: elemen visual dasar yang dapat di render dengan 1 dari sejumlah frame yang tersimpan di image. Sprite menyediakan fungsi flipping & rotasi, serta perpindahan lokasi. 5.TiledLayer: elemen visual yang terbentuk dari grid sel yang dapat berisi image (potongan image). Biasanya digunakan di game 2D untuk membuat scrolling background.

GameCanvas vs Canvas 1.GameCanvas memiliki kendali penuh saat display di update sedangkan pada Canvas, harus menunggu system memanggil paint(). 2.GameCanvas dapat mengendalikan region yang di update (lebih flexibel).

Mengendalikan animasi dengan GameCanvas Penggunaan GameCanvas tidak sama dengan Canvas: –Untuk menggunakan Canvas, cukup dilakukan subclass (extends) dan mendefinisikan metod paint(). Untuk mengupdatenya, digunakan method repaint(). –Untuk menggunakan GameCanvas, cukup dilakukan subclass (extends). Untuk menggambar pada screen, digunakan method getGraphics() untuk mendapat handler Graphics. Saat ingin mengupdate screen, digunakan method flushGraphics(). Untuk mengupdate screen sebagian/spesifik digunakan method flushGraphics(int x, int y, int width, int height).

Pooling key GameCanvas memberikan method untuk membaca state key: Syntax: public int getKeyStates() FieldDescription DOWN_PRESSEDThe bit representing the DOWN key. FIRE_PRESSEDThe bit representing the FIRE key. GAME_A_PRESSEDThe bit representing the GAME_A key (may not be supported on all devices). GAME_B_PRESSEDThe bit representing the GAME_B key (may not be supported on all devices). GAME_C_PRESSEDThe bit representing the GAME_C key (may not be supported on all devices). GAME_D_PRESSEDThe bit representing the GAME_D key (may not be supported on all devices). LEFT_PRESSEDThe bit representing the LEFT key. RIGHT_PRESSEDThe bit representing the RIGHT key. UP_PRESSEDThe bit representing the UP key.

Property class Layer Layer memiliki property lokasi, ukuran dan visibility, yang dapat diakses dengan method sbb: Modifier and TypeMethod and Description intgetHeight() Gets the current height of this layer, in pixels. intgetWidth() Gets the current width of this layer, in pixels. intgetX() Gets the horizontal position of this Layer's upper-left corner in the painter's coordinate system. intgetY() Gets the vertical position of this Layer's upper-left corner in the painter's coordinate system. booleanisVisible() Gets the visibility of this Layer. voidmove(int dx, int dy) Moves this Layer by the specified horizontal and vertical distances. abstract voidpaint(Graphics g) Paints this Layer if it is visible. voidsetPosition(int x, int y) Sets this Layer's position such that its upper-left corner is located at (x,y) in the painter's coordinate system. voidsetVisible(boolean visible) Sets the visibility of this Layer.

Mengelola Layer dengan LayerManager LayerManager mmberikan indek untuk setiap Layer dengan urutan dari depan ke belakang. Posisi 0 adalah teratas/terdepan (disebut z-order) Untuk menambahkan layer (terbawah/terbelakang) digunakan method public void append(Layer l). Untuk menyisipkan layer digunakan method public void insert(Layer l, int index) Untuk mengambil suatu layer digunakan method Layer getLayerAt(int index) Untuk menghapus layer digunakan method void remove(Layer l) Untuk memposisikan view windows digunakan method public void setViewWindow(int x, int y, int width, int height) Untuk menggambarkan layer digunakan method public void paint(Graphics g, int x, int y)

Ilustrasi LayerManager view window is set to 85 x 85 pixels and is located at (52, 11) lm = new LayerManager(); lm.setViewWindow(52, 11, w, h) rendered at (17, 17) lm.paint(g, 17, 17);

Menggunakan TiledLayer Buat suatu array matrik 2 dimensi (lebar x tinggi) untuk memetakan ‘tile’ yang akan digambar di layer. Penomoran tile dilakukan dari kiri ke kanan lalu baris dibawahnya. Untuk mengethui width & heightsuatu layer digunakan formula –Width = jumlah kolom X lebar ‘tile’ –Height = jumlah baris X tinggi ‘tile’

TiledLayer: Tiles

TiledLayer: Cells setAnimatedTile(-1, 7)

Membuat TiledLayer Untuk membuat objek TiledLayer digunakan Syntax: public TiledLayer(int columns, int rows, Image image, int tileWidth, int tileHeight) Contoh: String TLBGSRC = "background_tiles.png“; Image backgroundImage = Image.createImage(TLBGSRC);

Mengisi TiledLayer TLBG = new TiledLayer(8, 6, backgroundImage, 48, 48); TLBG.setPosition(0, 0); int[] map = { 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 3, 3, 2, 0, 0, 0, 5, 0, 3, 3, 3, 2, 4, 1, 3, 2, 6, 6, 6, 6, 6, 6, 6, 6 }; for (int i = 0; i < map.length; i++) { int column = i % 8; int row = (i - column) / 8; TLBG.setCell(column, row, map[i]); } // sun-> index 8 mAnimatedIndex = TLBG.createAnimatedTile(8); TLBG.setCell(3, 0, mAnimatedIndex); lm.append(TLBG); TiledLayer Width = 8*48 = 384 Height = 6*48 = 288

Sprite frame

Sprite sequence

Referenced pixel

Menggunakan Spite S = new Sprite(spriteImage, 48, 48); S.setPosition((getWidth() - 48) / 2, 192); // public void setPosition(int x, int y) S.defineReferencePixel(24, 24); // void defineReferencePixel(int inp_x, int inp_y) lm.insert(S, 1); // public void insert(Layer l, int index) ×48 pixels

Animasi Sprite Default sequence adalah 0,1,2,3 Contoh: int[] runningSequence = { 0, 1, 2 }; Image quatschImage = Image.createImage("/quatsch.png"); Sprite quatsch = new Sprite(quatschImage, 48, 48); quatsch.setFrameSequence(runningSequence); Atau loncat ke suatu frame dengan method: public void setFrame(int sequenceIndex) Sprite animation is all about frame sequences

Sprite transformation

Transforming Sprite Transforming sprite dilakukan dengan method public void setTransform(int transform) Parameters: transform –TRANS_NONE –TRANS_ROT90 –TRANS_ROT180 –TRANS_ROT270 –TRANS_MIRROR –TRANS_MIRROR_ROT90 –TRANS_MIRROR_ROT180 –TRANS_MIRROR_ROT270 The reference pixel doesn’t move.

Mengubah reference point Untuk mengubah reference point digunakan method: public void defineReferencePixel(int x, int y) Efek mengubah reference point adalah titik reference tidak berubah saat transform mirror dilakukan. Method lain untuk mengubah reference point adalah: public void setRefPointPosition(int x, int y) Contoh: S.defineReferencePixel(24, 24); reference pixel to be at the center of the 48×48 frame

Handling collision Digunakan untuk menentukan apakah dua buah objek bertabrakan, contoh bullet dengan target. Teknik yang digunakan adalah: 1.Membandingkan rectangle dari satu sprite dengan sprite lain. Bila kedua sprite berpotongan, maka telah terjadi collision. Cara termudah tapi kurang akurat untuk bentuk yang non rectangular. 2.Membandingkan setiap piksel pada satu sprite dan sprite lain. Bila suatu titik pada satu sprite mengoverlap titip pada sprite lain, maka telah terjadii collision. Akurat namun membutuhkan komputasi yang berat.

Mendefinisikan collision Untuk mengubah collision rectangle digunakan method: public void defineCollisionRectangle(int x, int y, int width, int height); Sprite memiliki kemampuan mendeteksi collision dengan 1.Sprites 2.TiledLayers 3.Images Untuk metode pixel digunakan method: public final boolean collidesWith(Sprite s, boolean pixelLevel) public final boolean collidesWith(TiledLayer t, boolean pixelLevel) public final boolean collidesWith(Image image, int x, int y, boolean pixelLevel) Special effek 1.Backlight: public boolean flashBacklight(int duration) 2.Vibrate: public boolean vibrate(int duration)

Review & Latihan W12 Membuat game sederhana ch 14