GameProg-2-Introduction to Greenfoot
Download
Report
Transcript GameProg-2-Introduction to Greenfoot
Pengenalan GREENFOOT
Pemrograman Game
Eko Prasetyo
Teknik Informatika
Univ. Pembangunan Nasional Veteran Jawa Timur
2012
Greenfoot
2
Skenario game
Object World
Instansiasi kelas (objek)
Kelas World
Class
DIagram
Kontrol
eksekusi
Pengatur
kecepatan
Compile
source code
3
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.
4
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.
5
Aktivitas Aktor Ikan
Kelas Ikan
protected int langkah=1;
Deklarasi properti pada level kelas Ikan
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());
}
}
Gerak ke kanan
Gerak ke kiri
6
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.
Method (behaviour) yang
balik();
terus dijalankan oleh
gerak1(langkah);
greenfoot selama aplikasi
}
dijalankan.
}
7
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)
getWorld().getWidth()
getWorld(). getHeight()
Memutar aktor pada arah direction
Mendapatkan lebar lingkungan
Mendapatkan tinggi lingkungan
getWorld().addObject(new Class(),X,Y)
getWorld().removeObject(this);
Membuat obyek baru
Menghapus obyek
8
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)
9
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
10
Game Little-Crab
Skenario:
Kepiting
makan
cacing, jika
menabrak
lobster
maka
kepiting
mati dan
membunyik
an suara.
11
Tugas I
SAATNYA ANDA
MEMBUAT GAME
(PERILAKU AKTOR)
12