Pengenalan GREENFOOT Pemrograman Game Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa Timur 2012
Greenfoot
Instansiasi kelas (objek) Skenario game Object World Instansiasi kelas (objek) Kelas World Class DIagram Kontrol eksekusi Pengatur kecepatan Compile source code
Greenfoot Skenario berguna untuk mengilustrasikan interaksi antara obyek (konsep Object Oriented) dalam game. Ada 2 kelas dasar dalam Greenfoot: World dan Actor. World (Dunia): Lingkungan (daerah) paling luas (window) yang meng-cover semua bagian aplikasi. Tempat aktor beraksi dan berinteraksi antar aktor Actor (Pelaku): Obyek (aktor) dalam World yang tampil seolah hidup dan berinteraksi dengan objek yang lain. Menggunakan konsep OOP secara penuh. Class Diagram: Berisi kontrol hierarki kelas aktor. Kontrol eksekusi: Act: Aktor menjalankan aktivitasnya 1 kali. Run: Aktor menjalankan aktivitasnya secara terus menerus. Reset: Mengembalikan susunan skenario ke kondisi awal.
Skenario 1: Ikan dan Orang Aktor ikan1 bergerak dari kiri ke kanan. Aktor ikan2 bergerak dari kanan ke kiri. Jika ikan mencapai tepi lingkungan maka muncul disisi seberang (seolah akuarium melingkar). Aktor orang, dapat bergerak ke atas dan kebawah, dapat mengeluarkan peluru.
Aktivitas Aktor Ikan Kelas Ikan Deklarasi properti pada level kelas Ikan protected int langkah=1; public void gerak1(int step) { if (getX() >= getWorld().getWidth()-10) { setLocation(10,getY()); }else { setLocation(getX()+step,getY()); } public void gerak2(int step) { if (getX() <= 10) { setLocation(getWorld().getWidth()-10,getY()); Gerak ke kanan Gerak ke kiri
Aktivitas Aktor Ikan public void balik() { if (Greenfoot.isKeyDown("a")) { langkah = -langkah; } }; Balik arah Panggil fungsi di kelas Ikan1 public class Ikan1 extends Ikan { /** * Act - do whatever the Ikan1 wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { // Add your action code here. balik(); gerak1(langkah); } Method (behaviour) yang terus dijalankan oleh greenfoot selama aplikasi dijalankan.
Library method aktor dalam Greenfoot void setLocation(X,Y) Menetapkan posisi aktor pada koordinat X,Y int getX() Mendapatkan koordinat X obyek pada saat itu int getY() Mendapatkan koordinat Y obyek pada saat itu boolean Greenfoot.isKeyDown(String karakter) void setRotation(int direction) Memutar aktor pada arah direction getWorld().getWidth() Mendapatkan lebar lingkungan getWorld(). getHeight() Mendapatkan tinggi lingkungan getWorld().addObject(new Class(),X,Y) Membuat obyek baru getWorld().removeObject(this); Menghapus obyek
Aktivitas aktor Orang public void act() { // Add your action code here. gerak(); tembak(); } public void gerak(){ if (Greenfoot.isKeyDown("r")) { setLocation(getX(),getY()-1); } else if (Greenfoot.isKeyDown("c")) { setLocation(getX(),getY()+1); public void tembak() { int X = getX(); int Y = getY(); if (Greenfoot.isKeyDown("p")) { getWorld().addObject(new Peluru(),X,Y); }; Gerak ke atas atau ke bawah Mengeluarkan peluru (menembak)
Aktivitas aktor Peluru public void act() { // Add your action code here. gerak(); } public void gerak() { setLocation(getX()+1,getY()); if (getX() >= getWorld().getWidth()-10) { getWorld().removeObject(this); }; Jika peluru sudah sampai di ujung, maka dihapus
Game Little-Crab Skenario: Kepiting makan cacing, jika menabrak lobster maka kepiting mati dan membunyik an suara.
Saatnya anda membuat game (Perilaku Aktor) Tugas I Saatnya anda membuat game (Perilaku Aktor)