Membuat Game Sederhana Menggunakan Aplikasi Greenfoot

 

Haiii... Selamat datang di Algoritme. 

Mau belajar bikin game sederhana menggunakan Apk Greenfoot ? Tepat banget kalian dateng ke blog ini.

Hal-hal yang harus kamu perhatikan sebelum memulai adalah :

1. Pastikan kamu telah menginstall Aplikasi Greenfootnya (Untuk menginstallnya kamu bisa langsung ke Webnya kok : https://www.greenfoot.org/download )

2. Persiapkan objek-objek atau gambar-gambar yang nantinya mengisi layar game kamu (Untuk ukuran gambarnya harus menyesuaikan ya, disini mimin membuat gambarnya hanya berukuran 50x50 pixels untuk objek dan 300x500 pixels untuk layar utamaya).





Setelah aplikasi diinstall dan mempunyai gambar untuk dijadikan objek Game mari kita mulai untuk melanjutkan cara membuatnya... 
1. Buat project baru (Scenario > New Java Scenario)


Buat nama game sesuai keinginan pada game kali ini saya membuat Name = CandyFrog
Lalu pilih location anda untuk menyimpan data game yang telah dibuat

2. Masukkan semua gambar atau object yang anda miliki untuk game ke dalam folder "image" pada folder game dimana letak location yang anda save pada langkah no.1 (Contoh : E:\Games\\CandyFrog\\images)

3. Lalu muncul tampilan scenario baru




4. Untuk memulai, anda perlu mengetahui fungsi dari World dan Actor

World merupakan layar utama kita dimana actor-actor atau objek-objek nantinya akan dimainkan

Actor merupakan objek-objek yang nantinya kita instruksikan dan kita masukan pada layer World 

5. Lalu kita akan membuat resolusi layer game dengan meng-klik 2x pada MyWorld

Lalu masukan codingan berikut pada Homepage()

300 x 500 berarti resolusi yang kita mau buat

setelah itu klik kanan pada MyWorld > set Image. Lalu masukan gambar background (bg) 


6. Masukan Homepage dan Endpage dengan klik kanan pada World > New subclass (Ulangi langkah 4 untuk mengganti reolusi layer dan ulangi langkah 5 untuk menambahkan gambar)

7. Masukkan actor-actor dengan cara meng-klik kanan pada actor > New subclass

Masukkan actor kodok, candy, no, play, exit, dll dan jangan lupa memberikan nama classnya


Kurang lebihnya seperti ini 


(Candy1,2,3,4,5 dan no1,2,3 merupakan subclass untuk menurunkan sifat dari kelas induknya yakni candy dan no)

*Berbeda dengan actor kodok dll, counter merupakan subclass yang telah disediakan oleh aplikasi Greenfoot fungsi dari Counter yakni sebagai perhitungan skor dan nyawa nantinya. Untuk mendapatkan Counter yakni klik pada Edit > Import Class > Counter > OK

*Untuk menduplikat Counter klik kanan pada actor Counter > Duplicate > (Memberikan class name) > OK


8. Kita mulai coding pada actor Counter (Memberikan skor pada game)

  • Ubah public class Counter extends Actor menjadi

    private static final Color transparent = new Color(0,0,0,0);

    private GreenfootImage background;

    private int value;

    private static int target;

    private String prefix;


  • lalu ubah public void add(int score) menjadi 

    public static void add(int score)


9. Lalu kita coding pada actor Counter 2 (Memberikan nyawa pada game)

  • Ubah public class Counter2 extends Actor menjadi

    private static final Color transparent = new Color(0,0,0,0);

    private GreenfootImage background;

    public static int value;

    private static int target;

    private String prefix;

  • Dan masukan nilai pada value dan target pada sebagai jumlah nyawa yang dimiliki


10. Lalu masukan codingan berikut pada actor kodok

public class kodok extends Actor
{
    void dimakan(){
        Counter.add(1);
        getWorld().removeObject(this);
    }
    
    public void act() 
    {
        if(Greenfoot.isKeyDown("right")){
            setLocation(getX()+1, getY());
        }
        else if(Greenfoot.isKeyDown("left")){
            setLocation(getX()-1, getY());
        }
        if(isTouching(no.class)){
            Counter2.add(-1);
            dimakan();
        }
        if(Counter2.value==0){
            Greenfoot.delay(1);
            Greenfoot.setWorld(new Endpage());
            getWorld().removeObject(this);
        }
    }    
}


11. Setelah actor kodok selesai kita lanjutkan kepada actor candy

public abstract class candy extends Actor
{
    abstract void cetakbaru();
    abstract void maju();
    
    void dimakan(){
        Counter.add(1);
        
        cetakbaru();
        getWorld().removeObject(this);
    }
    
    public void act() 
    {
        maju();
        if(getY()>=499){
            setLocation(Greenfoot.getRandomNumber(300),0);
        }
        if(isTouching(kodok.class)){
            dimakan();
        }
        if(Counter2.value==0){
            getWorld().removeObject(this);
        }
        
    }    
}


12. Setelah actor candy selesai sebagai class parent dari candy1,2 dst. masukan codingan berikut pada actor candy1,2,3 dst

public class candy1 extends candy
{
    void cetakbaru(){
        candy1 candy1 = new candy1();
        getWorld().addObject(candy1,Greenfoot.getRandomNumber(300),0);
    }
    void maju(){
        setLocation(getX(), getY()+3);
    }
    
    public void act() 
    {
        super.act();
    }    
}

*Note : Setiap candy memiliki nama berbeda jadi jangan lupa mengganti no candy sesuai dengan nama classnya (pada class yang dibirukan) contoh pada subclass candy 2 maka codingan sebagai berikut :

        candy2 candy2 = new candy2();

        getWorld().addObject(candy2,Greenfoot.getRandomNumber(300),0);

13. Seperti pada induk class candy, induk class dari no (no berarti barang yang tidak boleh dimakan oleh kodok) juga diberikan codingan sebagai berikut :

public abstract class no extends Actor
{
    abstract void cetakbaru();
    abstract void maju();
    
    void dimakan(){
        cetakbaru();
        getWorld().removeObject(this);
    }
    
    public void act() 
    {
        maju();
        if(getY()>=499){
            setLocation(Greenfoot.getRandomNumber(300),0);
        }
        if(isTouching(kodok.class)){
            Counter2.add(-1);
            dimakan();
        }
        if(Counter2.value==0){
            getWorld().removeObject(this);
        }
    }    
}


14. Seperti halnya pada subclass dari candy1,2,3,dst subclass dari induk class no yakni no1,2,3dst diberikan codingan sebagai berikut :

public class no1 extends no
{
    void cetakbaru(){
        no1 no1 = new no1();
        getWorld().addObject(no1,Greenfoot.getRandomNumber(300),0);

    }
    void maju(){
        setLocation(getX(), getY()+2);
    }
    public void act() 
    {
        super.act();
    }     
}

15. Lalu memasukkan codingan pada actor play sebagai berikut

public class play extends Actor
{
    public void act() 
    {
        if(Greenfoot.mousePressed(this)){
            getImage().scale((int)Math.round(getImage().getWidth()*0.9),
            (int)Math.round(getImage().getHeight()*0.9));
        }
        if(Greenfoot.mouseClicked(this)){
            Greenfoot.delay(1);
            Greenfoot.setWorld(new MyWorld());
        }
    }    
}

16. Dilanjutkan dengan memasukkan codingan berikut pada actor Exit

public class exit extends Actor
{
    public void act() 
    {
        if(Greenfoot.mousePressed(this)){
            getImage().scale((int)Math.round(getImage().getWidth()*0.9),
            (int)Math.round(getImage().getHeight()*0.9));
        }
        if(Greenfoot.mouseClicked(this)){
            Greenfoot.delay(1);
            Greenfoot.setWorld(new Homepage());
        }
    }    
}

17. Setelah semua code dimasukan dalam actor dan World, mari kita lanjutkan untuk memasukkan actor-actor kepada layer World dengan cara klik kanan pada actor > new > masukan kepada layer

Contoh : actor kodok > new kodok() > masukan ke layer MyWorld > klik kiri

*Note hal terpenting pada bagian ini adalah jangan lupa untuk klik kanan pada layar game lalu "Save the World" untuk meng-save gambar yang telah kita buat dan pindahkan


*Hal yang berbeda saat memasukkan actor adalah saat memasukkan actor "Counter" dan "Counter2" dikarenakan kita harus memberikan keterangan pada counter dan jangan lupa untuk memberikan tanda petik dua "" lalu tekan OK dan masukan pada layar game MyWorld


*Dan masukan actor play pada Homepage() dan masukan actor Exit pada Endpage() seperti gambar utama game yang telah mimin buat di atas. min gimana caranya untuk masuk ke homepage() atau Endpage() ? cukup klik kanan pada world yg telah dibuat lalu klik > new ...() kok

18. Setelah semua langkah dilakukan mari kita coba dengan mengklik Run pada bawah layar game dan klik Play pada game.


Mudahh bukan ? 

Tetap semangat, Stay Safe and Keep Healthy ya !!!

Oh iya mungkin bila teman-teman agak mager untuk ngebaca bisa dilihat video ini, karena pada video kali ini dijelasin juga ni fungsi2 yang terdapat dalam codingan :




Komentar

Postingan populer dari blog ini

Kontrak Belajar Pemodelan dan Simulasi 7C Oleh Akram