Pada
kesempatan kali ini saya akan membuat sebuah aplikasi game yang
berjudul ‘Monkey in Paper’. Game ini dibuat dengan aplikasi Greenfoot. Game ini
diberi nama Monkey in Paper karena pada seluruh pembuatan game ini
objek serta penggunaan background-nya berwarna hitam dan putih
seperti di atas sebuah kertas. Jadilah judul ‘Monkey in Paper’ ini diambil.
Secara
umum, game ini sangatlah mudah dan dapat dimainkan oleh siapa
saja. Ada sebuah objek yaitu seekor monyet yang membawa keranjang. Tugas dari
monyet tersebut adalah menangkap objek yang harus ditangkap yaitu pisang.
Setiap pisang yang ditangkap bernilai 10. Ada satu objek lain yaitu bom. Dimana
bom itu akan menyebabkanscore berkurang apabila monyet
mengenainya. Score akan berkurang sesuai dengan lamanya monyet
mengenai bom tersebut. Game akan selesai apabila score telah
mencapai angka 50.
Berikut pembahasan serta langkah untuk membuat game ‘Monkey
in Paper’ ini:
1. Buka
Greenfoot. Pada World Classes buat new subclass dengan cara klik kanan pada
World –> new subclass…. Pilih Beri nama kelas dengan nama ‘Paper’. Lalu
pilih image untuk dijadikan background. Lalu klik OK.
2. Pada
Actor Classes buat new subclass dengan cara klik kanan pada Actor –> new
subclass…. Beri nama kelas dengan nama ‘Objek’. Lalu klik OK
3. Pada
Class Objek, buat subclass baru dengan cara klik kanan pada ‘Objek’ –> new
subclass…. Beri nama kelas dengan nama ‘Monkey’ Lalu klik OK. Lalukan hal yang
sama untuk membuat subclass ‘Banana’ dan ‘Bomb’.
4. Buat
juga subclass baru pada Actor dengan nama ‘Score’ dan ‘Counter.
5. Lalu
pada World Classes ‘Paper’, klik kanan, pilih Open Editor.
Source
code pada World Class Paper :
import
greenfoot.*; // import World, Actor, GreenfootImage, Greenfoot
/**
* Write a description of class Paper here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Paper extends World
{
/**
* Constructor untuk objects dari class Paper.
*/
public Paper()
{
// Buat world dengan ukuran 720x480 cells
dengan cell size 1x1 pixels
super(720, 480, 1);
BananaAppear(); //method BananaAppear
prepare(); //method prepare
BombAppear(); //method BombAppear
}
public void act() //method act
{
if (getObjects(Banana.class).isEmpty())
BananaAppear();
if (getObjects(Bomb.class).isEmpty())
BombAppear();
}
private void prepare() //method prepare untuk
menentukan posisi dari kelas objek masing-masing
{
Monkey monkey = new Monkey();
addObject(monkey, 648, 403);
Counter counter = new Counter();
addObject(counter, 57, 69);
Score score = new Score();
addObject(score, 64, 44);
score.setLocation(59, 44);
monkey.setLocation(373, 403);
}
public void BananaAppear() //method
BananaAppear
{
if(Greenfoot.getRandomNumber(2) < 50)
{
addObject(new Banana(),
Greenfoot.getRandomNumber(519),20);
}
}
public
void BombAppear() //method BombAppear
{
if(Greenfoot.getRandomNumber(2) < 50)
{
addObject(new Bomb(),
Greenfoot.getRandomNumber(519),21);
}
}
}
6.
Pada Kelas Objek, klik kanan, pilih Open Editor.
Source
code pada Kelas Objek:
import
greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Objek here.
*
* @author (your name)
* @version (a version number or a date)
*/
//Konstruktor
Objek pada World Actor
public class Objek extends Actor
{
public boolean atWorldEdge()
{
if(getX() < 10 || getX() >
getWorld().getWidth() - 10)
return true;
if(getY() < 10 || getY() >
getWorld().getHeight() - 10)
return true;
else
return false;
}
/**
* true bila kita dapat melihat objek 'clss'
class dari Object
* false bila tidak ada object
*/
public boolean canSee(Class clss)
{
Actor actor = getOneObjectAtOffset(0, 0,
clss);
return actor != null;
}
/**
* Method untuk memakan objek dari kelas
'clss'. Method 'eat' akan dilakukan bila
* objek yang dimaksud ada. Selain objek
tersebut, method tidak dilakukan
*/
public void eat(Class clss)
{
Actor actor = getOneObjectAtOffset(0, 0,
clss);
if(actor != null) {
getWorld().removeObject(actor);
}
}
}
7. Pada
Kelas Objek, subclass Bomb, klik kanan. Pilih Open Editor.
Source
code pada kelas objek, subclass Bomb:
import greenfoot.*;
// (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Rock here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Bomb extends Objek
{
/**
* Act - do whatever the Bomb wants to do. This
method is called whenever
* the 'Act' or 'Run' button gets pressed in
the environment.
*/
public void act()
{
setLocation(getX(), getY()+5);
Bombing();
}
public void Bombing() //method Bombing
{
if (canSee(Monkey.class)) //bila melihat kelas
Monkey
{
((Counter)getWorld().getObjects(Counter.class).get(0)).Counting(-1);
//kelas Count dikurangi sebanyak 1 poin
Greenfoot.playSound("boom.wav");
//Mainkan sound boom.wav
}
if (atWorldEdge()) //bila objek berada
di bawah world
{
getWorld().removeObject(this); //remove object
}
}
}
8.
Pada Kelas Objek, subclass Banana, klik kanan. Pilih Open Editor.
Source
code pada kelas objek, subclass Banana:
import
greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Banana here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Banana extends Objek
{
/**
* Act - do whatever the Banana wants to do.
This method is called whenever
* the 'Act' or 'Run' button gets pressed in
the environment.
*/
private int timer=0;
public void act() //method act
{
setLocation(getX(), getY()+6); //posisi objek
banana, kecepatan banana = +6
BananaFall(); //lakukan method BananaFall
}
public void BananaFall() //method BananaFall
{
if (atWorldEdge()) //jika objek banana berada
di bawah world
{
getWorld().removeObject(this); // remove objek
banana
Greenfoot.playSound("bananafall.wav");
// mainkan sound bananafall.wav
}
}
}
9. Pada
Kelas Objek, subclass Monkey, klik kanan. Pilih Open Editor.
Source
code pada kelas objek, subclass Monkey:
import
greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Monkey here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Monkey extends Objek
{
/**
* Act - do whatever the Monkey wants to do.
This method is called whenever
* the 'Act' or 'Run' button gets pressed in
the environment.
*/
public void act() //method act
{
moveMonkey(); //method moveMonkey
objectDisappear(); //method objectDisappear
}
public void objectDisappear() //method
objectDisappear
{
if (canSee(Banana.class)) //bila melihat kelas
objek banana
{
eat(Banana.class); //eat kelas objek banana
((Counter)getWorld().getObjects(Counter.class).get(0)).Counting(10);
// kelas counter ditambah sebanyak 10 poin
Greenfoot.playSound("score.wav"); //
mainkan sound score.wav
}
}
public void moveMonkey() //method moveMonkey
{
if (Greenfoot.isKeyDown("left"))
//bila arah panah ke kiri ditekan
{
move(-7); //bergerak ke -7
}
if (Greenfoot.isKeyDown("right"))
//bila arah panah ke kanan ditekan
{
move(7); //bergerak ke 7
}
}
}
10. Pada
kelas Counter, klik kanan, pilih Open Editor.
Source
code pada Kelas Counter:
import
greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.awt.Color; //untuk pengaturan
warna
/**
* Write a description of class Counter here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Counter extends Actor
{
/**
* Act - do whatever the Counter wants to do.
This method is called whenever
* the 'Act' or 'Run' button gets pressed in
the environment.
*/
private int totalCount = 0; // Counter default
awal = 0
public void act() //method act
{
gameOver(); //method gameOver
}
public Counter() //kelas Counter
{
setImage(new GreenfootImage("0", 30,
Color.WHITE, Color.BLACK)); //membuat tampilan counter dengan ukuran awal 30,
tulisan warna putih, backgroun hitam
}
public void Counting (int hitung) // method
Counting
{
totalCount += hitung;
setImage(new GreenfootImage("" +
totalCount, 30, Color.WHITE, Color.BLACK)); //membuat tampilan perubahan
counter dengan ukuran awal 30, tulisan warna putih, backgroun hitam
}
public void gameOver() //method gameOver
{
if (totalCount >= 50) //bila totalCount
>= 50
{
Greenfoot.stop(); // stop permainan
Greenfoot.playSound("tada.wav");
//mainkan sound tada.wav
System.out.println("CONGRATULATION WON!
Click RESET to play again"); //tampilkan tulisan ini
}
}
}
11. Pada
kelas Score, klik kanan, pilih Open Editor.
Source
code pada Kelas Score:
import
greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Score here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Score extends Actor
{
/**
* Act - do whatever the Score 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.
}
}
12. Untuk
sound dari game, buka file folder dari project greenfoot yang sedang kita buat,
lalu buka folder ‘sound’. Tambahkan sound berekstensi file .wav, dengan judul
file yang sama dengan source code yang telah kita buat.
13.
Setelah di Compile dan terdapat tulisan No Syntax Error maka program dapat
dijalankan. Klik Run, maka game akan berjalan.
0 Response to "Membuat Game “Monkey in Paper” dengan Menggunakan Greenfoot"
Posting Komentar