120 likes | 304 Vues
Pengenalan GREENFOOT. Pemrograman Game. Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa Timur 2012. Greenfoot. Skenario game. Object World. Instansiasi kelas ( objek ). Kelas World. Class DIagram. Kontrol eksekusi. Pengatur kecepatan.
E N D
Pengenalan GREENFOOT Pemrograman Game Eko Prasetyo TeknikInformatika Univ. Pembangunan Nasional Veteran JawaTimur 2012
Skenario game Object World Instansiasikelas (objek) Kelas World Class DIagram Kontroleksekusi Pengaturkecepatan Compile source code
Greenfoot • Skenariobergunauntukmengilustrasikaninteraksiantaraobyek (konsep Object Oriented) dalam game. • Ada 2 kelasdasardalamGreenfoot: World dan Actor. • World (Dunia): • Lingkungan (daerah) paling luas (window) yang meng-cover semuabagianaplikasi. • Tempataktorberaksidanberinteraksiantaraktor • Actor (Pelaku): • Obyek (aktor) dalam World yang tampilseolahhidupdanberinteraksidenganobjek yang lain. • Menggunakankonsep OOP secarapenuh. • Class Diagram: Berisikontrolhierarkikelasaktor. • Kontroleksekusi: • Act: Aktormenjalankanaktivitasnya 1 kali. • Run: Aktormenjalankanaktivitasnyasecaraterusmenerus. • Reset: Mengembalikansusunanskenariokekondisiawal.
Skenario 1: IkandanOrang • Aktor ikan1 bergerakdarikirikekanan. • Aktor ikan2 bergerakdarikanankekiri. • Jikaikanmencapaitepilingkunganmakamunculdisisiseberang (seolahakuariummelingkar). • Aktororang, dapatbergerakkeatasdankebawah, dapatmengeluarkanpeluru.
AktivitasAktorIkan KelasIkan Deklarasipropertipada level kelasIkan 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()); }else { setLocation(getX()+step,getY()); } } Gerakkekanan Gerakkekiri
AktivitasAktorIkan public void balik() { if (Greenfoot.isKeyDown("a")) { langkah = -langkah; } }; Balikarah Panggilfungsidikelas 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 terusdijalankanolehgreenfootselamaaplikasidijalankan.
Library method aktordalamGreenfoot void setLocation(X,Y) Menetapkanposisiaktorpadakoordinat X,Y intgetX() Mendapatkankoordinat X obyekpadasaatitu intgetY() Mendapatkankoordinat Y obyekpadasaatitu booleanGreenfoot.isKeyDown(String karakter) void setDirection(int direction) Memeriksatombol keyboard yang ditekan getWorld().getWidth() Mendapatkanlebarlingkungan getWorld().getHeight() Mendapatkantinggilingkungan getWorld().addObject(new Class(),X,Y) Membuatobyekbaru Menghapusobyek getWorld().removeObject(this);
AktivitasaktorOrang 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); }; } Gerakkeatasataukebawah Mengeluarkanpeluru (menembak)
AktivitasaktorPeluru public void act() { // Add your action code here. gerak(); } public void gerak() { setLocation(getX()+1,getY()); if (getX() >= getWorld().getWidth()-10) { getWorld().removeObject(this); } }; Jikapelurusudahsampaidiujung, makadihapus
Game Little-Crab • Skenario: Kepitingmakancacing, jikamenabrak lobster makakepitingmatidanmembunyikansuara.
Tugas I Saatnyaandamembuatgame(PerilakuAktor)