macem macem

Kamis, 30 Oktober 2014

.:: Membuat game sederhana dengan menggunakan GreenFoot ::.



Assalamualaikum..     
yosh, langsung aja Pada kesempatan kali ini, saya akan berbagi ilmu tentang membuat game sederhana dengan menggunakan GreenFoot.  Tapi sebelum buat game nih kita kenalan dulu yuk sebenernya apasih GreenFoot itu ?. 
     GreenFoot atau kaki hijau dalam bahasa Indonesia adalah adalah perangkat lunak yang didesain untuk pemula agar dapat terbiasa dengan Pemrograman Berorientasi Objek (Object-Oriented Programming), yang mendukung pengembangan aplikasi bergambar dengan memakai bahasa pemrograman Java.
     Greenfoot didesain dan telah diimplentasikan di Universitas Kent, Inggris dan Universitas Deakin, Melbourne – Australia.
     Informasi lebih lanjut mengenai Greenfoot bisa dilihat di www.greenfoot.org.
     Terdapat 3 versi yang tersedia: untuk Windows, untuk MacOS X, dan untuk sistem operasi yang lain.
Prasyarat :
Diperlukan Java 5(JDK) versi 1.5 atau yang terbaru untuk menjalankan Greenfoot. Kami merekomendasikan untuk membaharui Java ke versi stabil (non-beta) terbaru. JDK bisa diunduh di laman web Sun http://java.sun.com/j2se/. Untuk diperhatikan, jangan mengunduh Java versi “JRE” (Java Runtime Environment) karena JRE sendiri tidaklah cukup, Anda membutuhkan Java versi “JDK” (Java Development Kit).
Pada MacOS X J2SE versi terbaru telah tersedia sewaktu menginstal sistem operasi, sehingga tidak perlu untuk menginstalnya lagi. 



Okeh yang diatas sekedar perkenalan dengan GreenFoot. Nah, teman-teman sekarang kita masuk untuk membuat sebuah pemrograman dasar game menggunakan Greenfoot. Ini merupakan salah satu karya saya dengan scenario atau jalan ceritanya yaitu “ ada seekor kepik yang sedang hinggap di dahan pohon tiba-tiba dari langit turun banyak sekali kue pie. Karena lapar kepik memakan kue pie itu. Setiap kali makan satu pie itu kepik akan mendapatkan 1 poin. Tapi disatu sisi ada spider/ laba-laba yang turun juga yang ternyata laba-laba tersebut beracun. Jika tersentuh laba-laba tersebut maka kepik akan mati atau game over. Selain itu jika pie itu tidak berhasil dimakan oleh kepik lalu jatuh ke tanah maka akan game over “.

Itulah sedikit penjelasan tentang game yang akan kita buat. Sangat sederhana tapi semoga bermanfaat.. :D

  
1. Bukalah aplikasi Greenfoot
 maka akan muncul tampilan seperti ini.
    













          








      2. Buatlah sebuah scenario baru. Caranya; Scenario => New => Nama Objek
 















Kemudian akan muncul kotak dialog, dimana teman-teman akan menyimpan diamana hasil kerja teman-teman.











     3.  Buatlah sebuah sub class di class word dengan cara klik kanan lalu pilih new subclass. lalu akan muncul jendela baru untuk memasukkan nama kelas. saya memberikan nama latar (perhatikan huruf besar dan kecilnya, karena pada pemrograman java bersifat case sensitive artinya huruf besar dan kecil sangat berpengaruh).
Akan muncul kotak dialog;
Pilih background yang teman-teman sukai, kalau saya sendiri ngambil dari google yang ada gambar pohonnya kemudian jangan lupa untuk memberikan nama class. Kemudian pilih OK. Untuk melihat hasilnya, klik compile maka akan tampil background yang dipilih tadi.
Klik kanan pada latar kemudian pilih open editor, maka akan tampil kode program class word dalam hal ini latar.
Ketikkan syntaks berikut :
public latar()
    {   
        super(900, 500, 1);
       
    }
perintah super(900,500,1). Perintah ini digunakan untuk membuat ukuran layar dengan panjang 900 x tinggi 500 dengan ukuran cell 1 x 1.
     4. Sekarang kita akan membuat Subclass Actor.







Disini untuk memasukkan gambar diatas, pilih import from file kemudian pilih gambar sesuai tema. setelah itu,  klik gambar tersebut kemudian jangan lupa untuk mengisikan nama class.  berikut tampilan depan

     5.     Menempatkan objek dalam subclaass latar. Klik kanan pada latar kemudian pilih open editor.
Masukkan syntax  dibawah sytaks membuat background/latar;
setPaintOrder(counter.class, kepik.class, pie.class);
         
        addObject(new kepik(), 200,250);
        addObject(new pie(),700,30);
        addObject(new spider(),500,30);
        addObject(skor,80,400);

    6.   Compile dan jika tidak ada kesalahan syntax lihat apa yang terjadi pada subclass latar.
  
   7.    Mengatur gerak aktor dengan Mouse
Masukkan syntaks berikut ke dalam actor kepik ;
if(Greenfoot.mouseMoved(null)) {
            MouseInfo mouse = Greenfoot.getMouseInfo();
            setLocation(mouse.getX(), mouse.getY());
        }
Tekan compile dan pastikan syntax yang teman buat sudah sesuai, jika tidak terjadi kesalahan maka akan muncul tulisan Class compiled-no syntax error.
    8. Setelah itu mengatur gerak kue pie / hujan pie secara random
Masukkan syntax berikut ke dalam actor pie ;
public void act()
    {
        int x = getX();
        int y = getY();
        setLocation(x, y + 1);
       
        if (getY() ==499)                        //untuk pie dapat turun ke bawah
        {
            setLocation(getX(),0);
        }
    }   
Masukkan syntax berikut pada latar  pada public void act;
if(Greenfoot.getRandomNumber(100) < 2) {                        //untuk pie dapat random/ acak
            addObject(new pie(), Greenfoot.getRandomNumber(700), 10);
        }
9.      Mengatur gerak spider atau musuh kepik
Masukkan syntax berikut ke dalam actor spider ;
public void act()
    {
        int x = getX();
        int y = getY();
        setLocation (x, y + 1);
       
        if (getY() ==499)                        //untuk spider dapat turun kebawah
        {
            setLocation(getX(),0);
        }
   }
Masukkan syntax berikut pada latar pada public void act;
if(Greenfoot.getRandomNumber(700) < 1) {                        //untuk spider dapat random/acak
            addObject(new spider(), Greenfoot.getRandomNumber(500), 10);
        }
   10.  Sekarang kita bikin point. Yaitu apabila kepik makan kue pie maka akan medapat poin satu.
Masukkan syntax berikut kedalam actor kepik di dalam void act ;
pie a= (pie)getOneIntersectingObject(pie.class);   //untuk pie dapat hilang ketika dimakan
        if (a!=null)
        {
            ((latar) getWorld()).tambahNilai();
            Greenfoot.playSound("pop.wav");     //untuk menambahkan suara
            getWorld().removeObject(a);
            return;
        }
//untuk sound bisa diambil dari folder greenfoot yang berada di direktori C:\
Kemudian masukkan syntax berikut pada latar dipaling atas setelah komentar:
counter skor = new counter ("Skor : ");
    public void tambahNilai()
    {
        skor.tambah(1);
    }
Masukkan syntax dibawah ini di actor counter :
import greenfoot.*;     //letakkan dipaling atas sebelum komentar
import java.awt.Font;
import java.awt.Color;
    private int angka = 0;
    private int target = 0;
    private String huruf;
    private int panjangHuruf;
   
    public counter( String depan )
    {
        huruf = depan;
        panjangHuruf = (huruf.length() +2) *16;
       
        setImage (new GreenfootImage(panjangHuruf,24));
        GreenfootImage gambar = getImage();
        Font jenisHuruf = gambar.getFont();
        gambar.setFont(jenisHuruf.deriveFont(24.0F));
       
        gantiGambar();
    }
   
    private void gantiGambar()
    {
        GreenfootImage gambar = getImage();
        gambar.clear();
       
        gambar.setColor(Color.RED);
       
        gambar.drawString(huruf + angka, 1, 18);
    }
   
    public void tambah (int skor)
    {
        target += skor;
    }
   
    public int nilaiAkhir()
    {
        return angka;
    }
   
   
    public void act()
    {
        if (angka < target)
        {
            angka++;
            gantiGambar();
        }
    }Okeh sekarang kita buat untuk mencetak skor pada papanskor.
Masukkan syntax berikut pada actor papanskor:
import greenfoot.*; 
import java.awt.Color;
import java.awt.Font;
import java.util.Calendar;
public class papanskor extends Actor
{
    public static final float besarhuruf = 48.0f;
    public static final int lebar = 500;
    public static int tinggi = 300;
   
    public papanskor(int skor)
    {
        bikinGambar("Game Over","Skor Akhir : ", skor);
    }
   
    private void bikinGambar(String judul, String depan, int skor)
    {
        GreenfootImage gambar = new GreenfootImage(lebar,tinggi);
        gambar.setColor (new Color (25, 5, 74, 160));
        gambar.fillRect(0,0, lebar-10, tinggi -10);
        Font font = gambar.getFont();
        gambar.setColor(Color.GREEN);
        gambar.drawString(judul,60, 100);
        gambar.drawString(depan+skor,60,200);
        setImage(gambar);
    }
Masukkan syntax berikut pada latar :
public void selesai()
    {
        addObject(new papanskor(skor.nilaiAkhir()), 450,250);
        Greenfoot.stop();
    }
  11.  Sekarang tinggal membuat gameover, yakni ketika kepik menyentuh spider atau kue pie jatuh ke tanah.
Masukkan syntax di actor kepik :
spider spider=(spider)getOneIntersectingObject(spider.class);
        if(spider !=null)
        {
            setImage("skull.png");
            setRotation(0);
            Greenfoot.playSound("buzz.wav");
            getWorld().removeObject(spider);
            Greenfoot.stop();
            ((latar) getWorld()).selesai();
        }
Masukkan syntax berikut di actor pie :
setLocation(getX(),getY() +1);           //game akan selesai ketika pie menyentuh tanah
        if (getY() == 450){
            ((latar) getWorld()).selesai();
            Greenfoot.playSound("buzz.wav");
        }
   12.  Yosh, sudah selesai. Agak membingungkan memang. Baiklah selamat berkreasi . 
         Bay bay sampai jumpa lagi :D 





Nama      :  Erwan Wijaya Nugraha
Sumber   : http://softwaregenerasi2.blogspot.com/2014/02/membuat-game-sederhana-dengan.html

3 komentar: