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