Word n Actor Refisi

35
Page | 1 MEMBUAT GAME MENGGUNAKAN GREENFOOT Sejarah Greenfoot Greenfoot proyek yang telah dimulai oleh Michael Kölling pada tahun 2003, dan prototipe yang pertama dibangun oleh Poul Henriksen (Magister siswa) dan Michael Kölling (supervisor) di 2003/2004. Dari 2005 pembangunan dilanjutkan melibatkan anggota lain dari BlueJ Group di University of Kent dan Deakin University. Kemudian pertama rilis, Greenfoot versi 1.0, telah diterbitkan pada 31 Mei 2006, dengan lebih lanjut dan terus dikembangkan dari sejak pertamarilis. Pada

Transcript of Word n Actor Refisi

Page 1: Word n Actor Refisi

P a g e | 1

MEMBUAT GAME MENGGUNAKAN GREENFOOT

Sejarah Greenfoot 

Greenfoot proyek yang telah dimulai oleh Michael Kölling pada tahun 2003, dan

prototipe yang pertama dibangun oleh Poul Henriksen (Magister siswa) dan Michael

Kölling (supervisor) di 2003/2004.

Dari 2005 pembangunan dilanjutkan melibatkan anggota lain dari BlueJ Group di

University of Kent dan Deakin University. Kemudian pertama rilis, Greenfoot versi

1.0, telah diterbitkan pada 31 Mei 2006, dengan lebih lanjut dan terus dikembangkan

dari sejak pertamarilis. Pada bulan Mei 2007, Greenfoot proyek telah mendapatkan

penghargaan "Duke's Choice Award" dalam kategori "Java Teknologi dalam

Pendidikan".

Greenfoot sendiri saat ini masih sedang dikembangkan di University of Kent dan

Deakin University dengan dukungan dari Sun Microsystems, dan  Greenfoot itu

Page 2: Word n Actor Refisi

P a g e | 2

sendiri adalah gratis, karena Pelaksanaannya didasarkan pada pembangunan

lingkungan serta edukasi.

Greenfoot Software

Greenfoot adalah interaktif Java untuk pembangunan lingkungan, dikembangkan

terutama untuk keperluan pendidikan, serta memungkinkan untuk memudahkan

pembangunan aplikasi grafis dua dimensi, seperti simulasi dan permainan interaktif.

Greenfoot ini adalah sebuah program yang dikembangkan oleh Universitas of Kent

yang fungsinya untuk edukasi pemograman, dan software ini di design dengan

menggunakan Java. Software ini memungkinkan kita untuk membuat sebuah game 2

dimensi seperti Pacman, Supermario dan sebagainya.

 Karena tujuan awalnya untuk  edukasi pemograman, greenfoot ini awal mulanya

untuk menarik minat anak-anak untuk belajar memprogram, Greenfoot ini cocok

untuk anak usia 13 tahun keatas. Untuk menggunakannya sama seperti memprogram

biasa pada umumnya, berbentuk teks tapi jadi lebih mudah karena ada perangkat

bantu seperti class browser, editor, compiler.

Greenfoot juga mendukung bahasa Java secara penuh, dengan adanya perangkat

bantu tadi, membuat lebih mudah dalam memahami konsep OOP. Greenfoot

memungkinkan implemention dan interaksi dengan objek dalam konteks "skenario".

Di dalam project tersebut, kita bisa membuat dua macam tipe class dari library

greenfoot. Yaitu class world dan actor. Class World merupakan latar dari game yang

akan dibuat. Untuk membuat class world, caranya adalah dengan meng-klik new sub

class di bagian world. Maka akan mucul sebuah kotak dialog. Kemudian kita diminta

Page 3: Word n Actor Refisi

P a g e | 3

untuk memberi nama untuk kelas world tersebut. Setelah itu kita dapat memilih

gambar sebagai latar belakang class world yang akan kita buat. Di dalam greenfoot

sendiri telah tersedia beberapa gambar untuk latar belakang, seperti gambar tanah,

pasir, batu, air, dll. Class Actor adalah sebuah kelas yang berfungsi sebagai karakter

pada game yang akan kita buat. Untuk membuat actor caranya adalah dengan meng-

klik icon aktor, kemudian pilih new subclass. caranya hampir mirip dengan

pembuatan class world. Pada class actor juga telah disediakan beberapa gambar,

sepertii gambar animal, people, symbol, dll.

Pada greenfoot tersedia perangkat lunak download termasuk lunar lander game,

sebuah simulasi ants, dan kura-kura grafis. Juga tersedia angka simulasi, Conway

dari permainan kehidupan, dan pada layar piano. Setelah berada di bawah obyek

pembangunan, mereka dapat interaktif akan ditempatkan dalam Greenfoot 'dunia',

dan pengembang dapat berinteraksi langsung dengan obyek untuk memohon metode. 

#  Tampilan Awal Greenfoot 

Greenfoot tersedia untuk Microsoft Windows , Mac OS X , Linux , Sun Solaris , dan

JVM (Java Virtual Machine)

Page 4: Word n Actor Refisi

P a g e | 4

Syarat Program :

Untuk dapat menjalankan program greenfoot di komputer, anda harus sudah

menginstal program Java 5 (JDK 1.5) atau dapat menggunakan Java 6( jdk-6u2-

windows-i586-p.exe)

Anda harus memiliki Java 5 (alias JDK 1.5) atau yang versi terbaru dan sudah

terinstal di sistem anda untuk dapat menggunakan Greenfoot.. Jangan download versi

bernama "JRE" (Java Runtime Environment) - JRE tidak cukup. Anda memerlukan

versi yang bernama JDK.

Cara instal dan cara membuat game :

Tahap awal install-lah Java 6 dengan cara double klik pada file hasil download

dan serperti kebanyakan program di windows lainnya cara instalasinyapun sangat

mudah, ikuti instruksi dilayar hingga muncul finish.

Gambar 1. Double klik file java dan ikuti instruksi layar hingga selesai.

Lanjutkan dengan menginstall greenfoot hinga selesai

Gambar 2. Install file greenfoot hingga selesai

Page 5: Word n Actor Refisi

P a g e | 5

Tampilan awal Greenfoot:

Gambar 3. Tampilan awal greenfoot

Yang akan kita bahas disini adalah scenario pertama, Tom &Jerry (kucing ngejar

tikus)

Scenario-nya :

- Ada 4 tikus , 5 keju, dan 1 kucing

- Tikus makan keju

- Kucing makan tikus

- Tikus akan bergerak mencari keju hingga semua keju habis

- Kucing akan menghentikan tikus dengan memakan tikus

- Jika semua keju habis, Anda KALAH

- Jika semua tikus dimakan kucing, Anda MENANG

- Tikus bergerak otomatis (random dari komputer)

- Kucing bergerak dikontrol keyboard

Page 6: Word n Actor Refisi

P a g e | 6

- Kucing dan tikus tidak bisa menembus/melewati pohon

Buat scenario dengan mengklik menu scenario lalu new lanjutkan dengan member

nama scenario(misal: Tom & Jarry ) seprti gambar 4. Lalu akan muncul isian seperti

gambar 5 .

Gambar 4. Membuat scenario baru Gambar 5. Beri nama scenario

Jika dilihat di windows explorer maka hasil yang kita lakukan akan terlihat seperti

gambar di bawah ini:

Gambar 6. Hasil pembuatan scenario jika dilihat menggunakan windows explorer

Page 7: Word n Actor Refisi

P a g e | 7

Disana terlihat scenario yang kita buat berbentuk folder dan didalamnya ada 3 folder

yang otomatis terbentuk, yaitu : greenfoot, image dan sound . fungsi folder image

adalah untuk menyimpan gambar yang akan kita gunakan, sedangkan folder sound

untuk menyimpan file suara yang kita pakai untuk game buatan kita. Folder images

dan sound awalnya masih kosong.

Subclass (World)

Buatlah sebuah subclass di class world dengan cara klik kanan lalu pilih new

subclass seperti gambar 7. Lalu akan muncul jendela baru untuk memasukkan nama

kelas seperti gambar 8 misalnya. Beri nama CatMouseWorld (perhatikan huruf

beasar dan kecilnya, karena pada pemrograman java bersifat case sensitif artinya

huruf besar berpengaruh),lalu terbentuk nama CatMouseWorld pada class World

seperti gambar 9.

Gambar 7 Cara membuat subclass Gambar 8. Beri nama subclass

Gambar 9. Nama CatMouseWorld pada class World

Page 8: Word n Actor Refisi

P a g e | 8

Desain:

pada Gambar 10.Klik kanan pada CatMouseWorld – Open editor, lalu muncul

jendela koding pada gambar 11.

Gambar 10 . Open editor Gambar 11. Jendela Koding

Untuk membuat sebuah World dengan ukuran 10 x 7 cell, dan tiap cell berukuran

60px ketikan kode

Gambar 12. Jendela

koding

Background dari image akan menggunakan “cell.jpg”

Coba Anda, COMPILE (tombol kiri atas), maka akan didapat pesan error

Page 9: Word n Actor Refisi

P a g e | 9

Hal ini karena file “cell.jpg” tidak ditemukan dalam folder lokal scenario yag kita

buat. Untuk itu, copy-kan “cell.jpg” dari folder Wombat

(C:/Greenfoot/scenarios/Wombat/images) ke folder scenario kita

(C:/Greenfoot/scenarios/Cat_n_Mouse/images)

Coba Anda, COMPILE (tombol kiri atas), maka akan didapat tampilan seperti

gambar 13

Gamabar 13. Tampilan wallpaper

Actor

Setelah desain World sudah berhasil dibuat, tentukan aktor-aktor yang

diperlukan dalam scenario (terserah Anda)

Dalam scenario ini, kita menggunakan aktor

- Cat : aktor kucing

- Mouse : aktor tikus

- Pizza : aktor pizza(makanan tikus)

- Pohon : aktor pelengkap sbg penghalang/tembok

- Counter : aktor penghitung keju dan tikus yang dimakan

- Hasil : aktor penampil hasil MENANG/KALAH

Page 10: Word n Actor Refisi

P a g e | 10

Klik kanan Actor, New subclass seperti pada gambar 14, dan isikan pilih

image seperti pada gambar 15,gambar Actor terserah Anda.

Gambar 14. New subclass pada actor Gambar 15. Memilih image yg digunakan

Dalam pemberian nama Actor harap diperhatikan penulisannya

(Besar/kecil huruf case sensitive), kita gunakan huruf kecil sehingga

menjadi

Gambar 16. Subclass

pada actor

Page 11: Word n Actor Refisi

P a g e | 11

Desain Lanjutan:

Sebelum kita membahas detail Actor-nya, kita akan mendesain kembali World-nya

- Rancanglah desain posisi aktor-aktor yang akan langsung ditampilkan pada

saat Start

- Tentukan posisi pohon ada dimana saja

- Tentukan posisi pizza ada dimana saja

- Tentukan posisi tikus ada dimana saja

- Tentukan posisi kucing ada dimana

Desain Untuk pohon:

(2,0) 0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

Gambar 17. Desain Pohon

Page 12: Word n Actor Refisi

P a g e | 12

Kita tambahkan method populasi_pohon() untuk pengaturan posisi pohon pada

CatMouseWorld

harus dipanggil

addObject(new pohon(),posisi cell X, posisi cell Y)

Gambar 18. Jendela koding pohon pada CatMouseWorld

Desain untuk pizza:

(3,0)

0 1 2 3 4 5 6 7 8 9

0

1

2

3

Page 13: Word n Actor Refisi

P a g e | 13

4

5

6

G Gambar18. Desain pohon dan pizza

Kita tambahkan method populasi_keju() untuk pengaturan posisi keju pada

CatMouseWorld

Harus dipanggil

addObject(new keju(),posisi cell X,

posisi cell Y)

Gambar 19. Jendela koding keju pada CatMouseWorld

Desain untuk kucing:

(7,4) 0 1 2 3 4 5 6 7 8 9

0

1

2

3

Page 14: Word n Actor Refisi

P a g e | 14

4

5

6

Gambar20. Desain pohon,pizza dan kucing

Kita tidak perlu membuat method khusus untuk menambah-kan kucing karena

kucing hanya 1 ekor, sehingga perintahnya hanya 1 baris. Langsung saja

ketikan pada class CatMouseWorld

addObject(new cat(),posisi

cell X,

posisi cell Y)

Gambar 21. Jendela koding kucing

pada CatMouseWorld

Desain untuk Tikus:

(7,0) 0 1 2 3 4 5 6 7 8 9

0

1

2

3

4

5

6

Page 15: Word n Actor Refisi

P a g e | 15

Gambar22. Desain pohon,pizza dan kucing

Kita tambahkan method populasi_mouse() untuk pengaturan posisi tikus pada

CatMouseWorld

Harus dipanggil

addObject(new mouse(),posisi cell X, posisi cell Y)

Gambar 23. Jendela koding mouse pada CatMouseWorld

Actor kucing

Sifat dari kucing :

- Bergerak dikontrol melalui keyboard

- Makan tikus

Page 16: Word n Actor Refisi

P a g e | 16

- Tidak boleh menembus/menabrak pohon

Bergerak dikontrol melalui keyboard

harus dipanggil

getKey() = mengetahui

tombol yang ditekan

Gambar 24. Jendela koding pada actor kucing

Right= (X+1,Y)

Left = (X-1,Y

Page 17: Word n Actor Refisi

P a g e | 17

Up = (X,Y-1)

Down= (X,Y+1)

Makan Tikus

If (nemu_tikus) then

makan_tikus; (tikus di remove )

tikus_yg_dimakan++; (counter tikus_mati nilainya brtmbh)

Else

gerak;

Untuk counter tikus yg dimakan akan dibahas nanti

pada act() diubah menjadi spt

disamping

Gambar 24. Jendela koding pada actor kucing

Tidak boleh menembus/menabrak pohon

If (nemu_pohon) then

balik_ke_posisi_semula;

Page 18: Word n Actor Refisi

P a g e | 18

Balik_ke_poisi_semula;

If arah=kanan then geser_kiri;

If arah=kiri then geser_kanan;

If arah=atas then geser_bawah;

If arah=bawah then geser_atas;

Tidak boleh menembus/menabrak pohon

nemu_pohon() untuk mengecek apakah kucing menabrak pohon atau tidak

pada gerak() disipkan source code agar kucing tidak bisa menembus pohon

Actor tikus

Sifat dari tikus

- Bergerak otomatis

Page 19: Word n Actor Refisi

P a g e | 19

- Makan keju

- Tidak boleh menembus/menabrak pohon

Sebelumnya kita siapkan dahulu properti yang dibutuhkan:

Default gerak pertama silakan di set (terserah Anda)

Disini kita set ke kanan

Bergerak otomatis

If (tidak bisa_gerak(arah_grk)) then

arah_baru=acak(arah)

while(arah_baru==arah_gerak)

arah_baru=acak(arah)

Misal :

If (tidak bisa_gerak(kiri)) then //jika tdk bs gerak ke kiri

arah_baru=acak(arah) //kanan,kiri,atas,bawah

while(arah_baru==kiri)

arah_baru=acak(arah) //diacak terus smp selain kiri

Bisa_gerak() -> boolean

Page 20: Word n Actor Refisi

P a g e | 20

ARH_GRK=KANAN;

6 7 8 9 (8,1) – (7,1) = (1,0)

0

1

2

(1,0) adlh selisih posisi antara objek yg kita cari (pohon) dgn objek utama 9 adlh batas paling kanan, shg jika tikus ada di posisi X=9, tdk blh bergerak ke kanan

ARH_GRK=KIRI;

0 1 2 3 (0,1) – (1,1) = (-1,0)

0

1

2

(-1,0) adlh selisih posisi antara objek yg kita cari (pohon) dgn objek utama

Page 21: Word n Actor Refisi

P a g e | 21

0 adlh batas paling kiri, shg jika tikus ada di posisi X=0, tdk blh bergerak ke kiri

ARH_GRK=ATAS;

0 1 2 3 (2,1) – (2,2) = (0,-1)

0

1

2

(0,-1) adlh selisih posisi antara objek yg kita cari (pohon) dgn objek utama

0 adlh batas paling kiri, shg jika tikus ada di posisi Y=0, tdk blh bergerak ke atas

ARH_GRK=BAWAH;

0 1 2 3 (2,5) – (2,4) = (0,1)

4

5

6

(0,1) adlh selisih posisi antara objek yg kita cari (pohon) dgn objek utama

Page 22: Word n Actor Refisi

P a g e | 22

6 adlh batas paling bawah, shg jika tikus ada di posisi Y=6, tdk blh bergerak ke bawah

Tidak boleh menembus / menabrak pohon

If (nemu_pohon)

Balik ke posisi semula

nemu_pohon() untuk mengecek apakah tikus menabrak pohon atau tidak

Kembali ke posisi semula

Disisipkan pada method gerak()

Page 23: Word n Actor Refisi

P a g e | 23

Makan_keju

If (nemu_pizza)

makan_pizza;

jml_pizza_dimakan++;

Else

gerak;

Counter penghitung pizza yang dimakan akan dibahas selanjutnya

Makan_pizza

Me-remove pizza yang ditemukan

Sehingga act() dari mouse adalah

Page 24: Word n Actor Refisi

P a g e | 24

Actor CounterSifat dari counter

- Menghitung jumlah keju yang dimakan tikus- Menghitung jumlah tikus yag dimakan kucing- Mengecek jika jumlah keju yang dimakan memenuhi target, menampilkan

pesan Anda KALAH- Mengecek jika jumlah tikus yang dimakan memenuhi target, menampilkan

pesan Anda MENANG

Properti yang disiapkan:

- Menghitung jumlah keju yang dimakan tikus- Menghitung jumlah tikus yag dimakan kucing

- Mengecek jika jumlah keju yang dimakan memenuhi target, menampilakn pesan Anda KALAH

- Mengecek jika jumlah tikus yang dimakan memenuhi target, menampilkan pesan Anda MENANG

Counter di definisikan di dalam CatMouseWorld

addObject(ct,0,0) akan menambahkan couter pada posisi (0,0), karena tidak ada image-nya, maka akan ditampilkan dengan image logo greenfoot kecil

Page 25: Word n Actor Refisi

P a g e | 25

Jika game berjalan terlalu cepat, bisa di-set untuk spped-nya menjadi lebih lambat

Greenfoot.setSpeed(speed);

Actor hasil

Sifat dari hasil

Menampilkan hasil dari game, MENANG / KALAH melalui image

Dalam penggunaan Color dan Font, harus meng-import library

PJG-10

Page 26: Word n Actor Refisi

P a g e | 26

LBR-10

Color(0, 0, 0, 160) => Hitam

Color(R, G, B, Opaque)

R=0, G=0, B=0, Opaque=160

PJG-10

LBR-10

Color(255, 255, 255, 100) => Putih

R=255, G=255, B=255, Opaque=100

“Menang!!!” akan dituliskan jika parameter pil=1

Selain itu akan dituliskan “KALAH!!!

Method Menang

Method menang() akan digunakan sebagai method untuk menampilakn pesan MENANG

Disisipkan pada CatMouseWorld

Page 27: Word n Actor Refisi

P a g e | 27

addObject(new hasil(1),5,3);

1 adalah parameter untuk menampilkan pesan “Menang!!!”

Ditempatkan pada posisi cell (5,3)

Output di layar:

Method Kalah

Method kalah() akan digunakan sebagai method untuk menampilkan pesan KALAH

Disisipkan pada CatMouseWorld

addObject(new hasil(0),5,3);

0 adalah parameter untuk menampilkan pesan “Kalah!!!”

Ditempatkan pada posisi cell (5,3)

Output di layar:

Page 28: Word n Actor Refisi

P a g e | 28

Method kalah() dan method menang()

Pemanggilan Method kalah() dan Method menang() dilakukan oleh aktor counter, sehingga act() pada counter