Membuat Game Petualangan Spiderman Menggunakan Greenfoot

Share:

Assalamualaikum warohmatullahi wabarokatuh

Programmer Bojonegoro - Hello World, pada kesempatan kali ini saya akan berbagi dokumentasi dari game yang saya buat pada semester satu dulu. Postingan kali ini agak berbeda dengan postingan-postingan sebelumnya.. Karena ini merupakan dokumentasi, sehingga terdapat script/code lengkap beserta aset dan penjelasannya. Maka dari itu, postingan kali ini akan sangat panjang dan lebar hehehe.. jadi sebaiknya siapkan camilan dulu sebelum membaca postingan ini wkwk..

Game yang saya beri judul “The Adventure Spiderman” ini merupakan game yang pertama kali saya buat dan digunakan untuk memenuhi tugas UAS mata kuliah Algoritma Pemrograman. 

Game ini saya buat dengan menggunakan aplikasi Greenfoot. Nah, buat kalian yang mungkin penasaran dengan game sederhana buatan saya atau mungkin ingin mengembangkan game ini, langkah pertama kalian harus mendownload aplikasi greenfoot di www.greenfoot.org lalu menginstallnya pada komputer/laptop kalian, kemudian download gamenya DISINI dan jangan lupa untuk memainkan game “The Adventure Spiderman” ya sob :v di jamin pasti seru,, hehehe..
Sekarang kalian juga bisa memainkan game The Adventure Spiderman ini secara online lho sob. Klik link berikut untuk memainkan game buatan saya secara Online : The Adventure Spiderman Games

Oke Sob, langsung saja menuju inti dari postingan ini. Berikut dokumentasi dari game “The Adventure Spiderman”.
game

 ::   Skenario Game
“THE ADVENTURE SPIDERMAN”

Game berjudul The Advanture Spiderman ini terdiri atas tiga level, dengan tingkat kesulitan yang berbeda pada tiap levelnya. Cara memainkan game ini sangatlah mudah yaitu dengan menekan tombol arah (“Up”,“Down”,“Right”,“Left”) untuk bergerak dan Space untuk menembak, jika tepat mengenai musuh maka score + 1. Nyawa Spiderman akan berkurang apabila menyentuh Musuh, Meteor dan Bola api dan akan bertambah apabila menyentuh Healthly. Apabila nyawa Spiderman = 0 maka GAME OVER dan jika Laser habis maka Spideman Kalah tetapi apabila Score = 50 pada level 1, Score = 100 pada level 2 dan Score = 200 pada level 3, maka Spiderman Menang.

   Level 1
game

·      Kondisi yang menyebabkan Player Menang :
Apabila score = 50 dan life > 0 maka player Menang.
·      Kondisi yang menyebabkan Player Kalah :
Apabila Laser = 0 maka player Kalah.
Kondisi yang menyebabkan Game Over :
Apabila Life = 0 maka Game Over.

   Level 2
game
·      Kondisi yang menyebabkan Player Menang :
Apabila score = 100 dan life > 0 maka Player Menang.
·      Kondisi yang menyebabkan Player Kalah :
Apabila Laser = 0 maka Player Kalah.
Kondisi yang menyebabkan Game Over :
Apabila Life = 0 maka Game Over.

   Level 3

game

·      Kondisi yang menyebabkan Player Menang :
Apabila score = 200 dan life > 0 maka Player Menang.
·      Kondisi yang menyebabkan Player Kalah :
Apabila Laser = 0 maka Player Kalah.
Kondisi yang menyebabkan Game Over :
Apabila Life = 0 maka Game Over.

 ::   Penjelasan Aset
game

A.  Image 
     :: BackGround1
“Sebagai Background pada Level 1”
:: BackGround2
“Sebagai Background pada level 2”
:: BackGround3
“Sebagai Background pada level 3”
:: Spiderman
“Sebagai Background saat menampilkan ( You Win, You Lose dan Game Over )”
:: START
“Sebagai Background Menu(Tampilan Awal)”
:: PLAY GAME
“Tombol untuk memulai game”
:: HELP
“Tombol untuk menampilkan Petunjuk dan Aturan Main”
:: Aturan Main
“Sebagai Petunjuk untuk Gamer/User”
:: EXIT
“Tombol untuk stop greenfoot dan menampilkan tulisan (Tekan CTRL+T)”
:: CTRL+T
“Sebagai perintah untuk Gamer apabila ingin me-Reset game”
:: CREDIT
“Sebagai tombol untuk menampilkan Identitas Author”
::  Tubianto Creator
“Identitas Author”
:: You Win
“Sebagai penanda saat menang”
:: You Lose
“Sebagai penanda saat kalah / Laser = 0”
:: MENU
“Tombol untuk kembali pada tampilan awal”
:: PLAY AGAIN
“Tombol untuk memulai dari awal, jika kalah”
:: Back
“Tombol untuk kembali ke level atau tampilan sebelumnya”
:: Next
“Tombol untuk lanjut ke level selanjutnya”
:: Game Over
“Sebagai penanda saat Game Over / Life = 0”
:: Standing
“Gambar spiderman saat tidak bergerak”
:: Shooting
“Gambar spiderman saat menembak”
:: Jumping
“Gambar spiderman saat melompat”
:: Shielding
“Gambar spiderman saat bertahan”
:: Musuh1
“Sebagai musuh pada level 1”
:: Musuh2
“Sebagai musuh pada level 2”
:: Musuh3
“Sebagai musuh saat level 3”
:: Musuh4
“Sebagai musuh saat level 1, 2 dan 3”
:: Laser Red
“Sebagai laser pada level 1”
:: Lase Blue
“Sebagai laser pada level 2”
:: Laser Green
“Sebagai laser pada level 3”
:: Bola Api
“Gambar yang dikeluarkan object musuh 4”
:: Healthly
“Sebagai penambah Health”
:: Meteor
“Sebagai pengurang Health”
:: Fumes
“Sebagai efek meledak”

 B.  Sound
game

:: Open
“Sebagai music utama Game”
:: Suara Ledakan
“Sebagai sound efek saat meledak”
:: Tembak
“Sebagai sound efek saat spiderman menembak”

 C. Penjelasan Source Code


   Word
    1.    Start

public class Start extends World
{
private GreenfootSound music = new GreenfootSound("open.mp3");
“Menambahkan musik dengan nama baru”
    public void started()
    {
        music.setVolume(50);
        music.play();
    }
    “Untuk mengatur dan memainkan musik”
    public void stopped()
    {
        music.stop();
        music.pause();
    }
    “Untuk stop atau pause musik”
    public Start()
    {   
        super(800, 600, 1);
        prepare();
    }
    “Mengatur ukuran Wordplay”
    public void prepare()
    {
        Play play = new Play();
        addObject(play, 100, 235);
        play.setLocation(100, 235);
“Menambah objek play dan mengatur lokasi objek”
        Exit exit = new Exit();
        addObject(exit, 100, 500);
        exit.setLocation(100, 500);
“Menambah objek exit dan mengatur lokasi objek”
        Help help = new Help();
        addObject(help, 100, 100);
        help.setLocation(100, 100);
“Menambah objek help dan mengatur lokasi objek”
        Credit credit = new Credit();
        addObject(credit,100, 365);
        credit.setLocation(100, 365);
“Menambah objek credit dan mengatur lokasi objek”
    }
}
     2.    Petunjuk

public class Petunjuk extends World
{
    public Petunjuk()
    {            
        super(800, 600, 1);
        prepare();
“Mengatur ukuran Wordplay”
    }
    public void prepare()
    {
        BackStart Bs = new BackStart();
        addObject(Bs, 100, 550);
        Bs.setLocation( 100, 550);
“Menambah objek BackStart dan mengatur lokasi objek”
    }
}
     3.    Author

public class Author extends World
{
    public Author()
    {   
        super(800, 600, 1);
        prepare();
“Mengatur ukuran Wordplay”
    }
    public void prepare()
    {
        BackStart Bs = new BackStart();
        addObject(Bs, 75, 550);
        Bs.setLocation( 75, 550);
“Menambah objek BackStart dan mengatur lokasi Objek”
    }
}
     4.    Place

public class Place extends World
{
                     private GreenfootSound music = new GreenfootSound("open.mp3");
“Menambahkan musik dengan nama baru”
    public void started()
    {
        music.setVolume(50);
        music.play();
    }
    “Untuk mengatur dan memainkan musik”
    public void stopped()
    {
        music.stop();
        music.pause();
    }
    “Untuk stop atau pause musik”

    int health ;
    int life ;
    int score ;
    int laser ;
    int level ;
“Menginputkan variabel”
    public Place()
    {   
        super(800, 600, 1);
        prepare();
“Mengatur ukuran Wordplay”
        health = 3;
        tulisanhealth();
“Mengatur  jumlah awal Health dan membuat variabel untuk memanggil method tulisanhealth()”
        life = 3;
        tulisanlife();
“Mengatur  jumlah awal Life dan membuat variabel untuk memanggil method tulisanlife()”
        score = 0;
        tulisanscore();
“Mengatur  jumlah awal Score dan membuat variabel untuk memanggil method tulisanscore()”
        laser = 60;
        tulisanlaser();
“Mengatur  jumlah Laser dan membuat variabel untuk memanggil method tulisanlaser()”
        level = 1;
        tulisanlevel();
“Mengatur  jumlah Level dan membuat variabel untuk memanggil method tulisanlevel()”
    }
    private void prepare()
    {
        Player player = new Player();
        addObject(player, 50, 560);
        player.setLocation(50, 560);
“Menambah objek player dan mengatur lokasi player”
    }
    public void act()
    {
        GenerateRandomEnemy();
        GenerateRandomEnemy2();
        Meteor();
        tambah();
        newlevel();
“Variabel untuk memanggil masing-masing method”
    }
    public void Health(int healthplus)
    {
        health += healthplus;
        tulisanhealth();
        if(health == 0)
        {
            life--;
            health = 3;
            tulisanlife();
            if(life == 0)
            {
                Greenfoot.setWorld(new GameOver());
            }
        }
    }
    “Jika Health = 0, life dikurangi 1 dan jika life = 0 maka pindah ke wordplay Game Over()”
    public void lifeplus()
    {
        health++;
        tulisanhealth();
        if(health == 3)
        {
            life++;
            tulisanlife();
        }
    }
    “Jika Health = 3 maka Life ditambah 1”
    public void scoreplus()
    {
        score++;
        tulisanscore();
    }
    “Score ditambah 1;
Variabel untuk memanggil method tulisanscore()”
    public int laser()
    {
        return laser;
    }
    “Memanggil Laser diclass lain”
    public void lasermin()
    {
        tulisanlaser();
        if (laser > 0)
        {
            laser--;
        }
        “Jika Laser lebih dari 0 maka laser selalu berkurang”
        if (laser == 0)
        {
            Greenfoot.setWorld(new YouLose());
        }
    }
    “Jika Laser = 0 maka pindah ke wordplay YouLose()”
    public void newlevel()
    {
        tulisanlevel();
        if(score == 50)
        {
            Greenfoot.setWorld(new YouWin());
        }
    }
    “Jika score = 50 maka pindah ke wordplay YouWin()”
    private void tulisanhealth()
    {
        showText("Health : " + health,50, 20);
    }
    “Menampilkan Health dan mengatur lokasinya”
    private void tulisanlife()
    {
        showText("Life : " + life,150, 20);
    }
    “Menampilkan Life dan mengatur lokasinya”
    private void tulisanscore()
    {
        showText("Score : " + score,250, 20);
    }
    “Menampilkan Score dan mengatur lokasinya”
    private void tulisanlaser()
    {
        showText("Laser : " + laser,360, 20);
    }
    “Menampilkan Laser dan mengatur lokasinya”
    private void tulisanlevel()
    {
        showText("Level :" + level,470, 20);
    }
    “Menampilkan Level dan mengatur lokasinya”
    private void GenerateRandomEnemy()
    {
        int x = getWidth() + 10;
“Lebar layar + 10 sehingga musuh keluar dari kanan layar”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya musuh dari koordinat Y”
        int out = Greenfoot.getRandomNumber(1000);
        if(out < 10)
        {
            addObject(new Musuh(),x , 550);
        }
    }
“Jika perulangan 1000 angka < 10 maka tambah musuh dan atur lokasinya”   
    private void GenerateRandomEnemy2()
    {
        int x = 0 - 10;
“Koordinat X : 0 – 10 sehiangga musuh keluar dari kiri”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya musuh koordinat Y”
        int out = Greenfoot.getRandomNumber(3000);
        if(out < 10)
            addObject(new Musuh4(),x , 100);
        }
    }
“Jika perulangan 3000 angka < 10 maka tambah musuh4 dan atur lokasinya”   
    private void tambah()
    {
        int x = getWidth() + 10;
        int y = Greenfoot.getRandomNumber(getHeight());
        int batas = Greenfoot.getRandomNumber(5000);
        if(batas < 10)
        {
            addObject(new Healthly() ,x,y);
        }
    }
    “Jika perulangan 5000 angka < 10 maka tambah Objek Healthly dan atur lokasinya”
    private void Meteor()
    {
        int x = Greenfoot.getRandomNumber(getWidth());
“Mengacak keluarnya Meteor pada Koordinat X”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya Meteor pada Koordinat Y”
        int jumlah = Greenfoot.getRandomNumber(500);
        if (jumlah < 10)
        {
            addObject(new Meteor(),x , y);
        }
    }
}
“Jika Perulangan 500 angka < 10 maka tambah objek Meteor dan atur lokasinya”
5.    Place2

public class Place2 extends World
{
                     private GreenfootSound music = new GreenfootSound("open.mp3");
“Menambahkan musik dengan nama baru”
    public void started()
    {
        music.setVolume(50);
        music.play();
    }
    “Untuk mengatur dan memainkan musik”
    public void stopped()
    {
        music.stop();
        music.pause();
    }
    “Untuk stop atau pause musik”

    int health ;
    int life ;
    int score ;
    int laser2 ;
    int level ;
“Menginputkan variabel”
    public Place2()
    {   
        super(800, 600, 1);
“Mengatur Ukuran Wordplay”
        prepare();
        health = 3;
        tulisanhealth();
“Mengatur  jumlah Health dan membuat variabel untuk memanggil method tulisanhealth()”
        life = 3;
        tulisanlife();
“Mengatur  jumlah Life dan membuat variabel untuk memanggil method tulisanlife()”
        score = 0;
        tulisanscore();
“Mengatur  jumlah Score dan membuat variabel untuk memanggil method tulisanscore()”
        laser2 = 120;
        tulisanlaser();
“Mengatur  jumlah Laser dan membuat variabel untuk memanggil method tulisanlaser()”
        level = 2;
        tulisanlevel();
“Mengatur  jumlah Level dan membuat variabel untuk memanggil method tulisanlevel()”
    }   
    private void prepare()
    {
        Player2 player = new Player2();
        addObject(player, 50, 560);
        player.setLocation(50, 560);
    }
“Menambah objek player2 dan mengatur lokasinya”   
    public void act()
    {
        GenerateRandomEnemy();
        GenerateRandomEnemy2();
        Meteor();
        tambah();
        newlevel();
“variabel untuk memanggil method masing-masing”
    }
    public void Health(int healthplus)
    {
        health += healthplus;
        if(health == 0)
        {
            life--;
            health = 3;
            tulisanlife();
            if(life == 0)
            {
                Greenfoot.setWorld(new GameOver());
            }
        }
        tulisanhealth();
    }
    “Jika Health = 0, maka Life dikurangi 1; jika life = 0, maka pindah ke wordplay Game Over”
    public void lifeplus()
    {
        health++;
        if(health == 3)
        {
            life++;
            tulisanlife();
        }
        tulisanhealth();
    }
    “Jika Health = 3 maka Life ditambah 1”
    public void scoreplus()
    {
        score++;
        tulisanscore();
    }
        “Score ditambah 1;
Variabel untuk memanggil method tulisanscore()”
    public int laser()
    {
        return laser;
    }
    “Memanggil Laser dimethod lain”
    public void lasermin()
    {
        tulisanlaser();
        if (laser > 0)
        {
            laser--;
        }
        “Jika Laser lebih dari 0 maka laser selalu berkurang”
        if (laser == 0)
        {
            Greenfoot.setWorld(new YouLose());
        }
    }
    “Jika Laser = 0 maka pindah ke wordplay YouLose()”
    public void newlevel()
    {
        tulisanlevel();
        if(score == 100)
        {
            Greenfoot.setWorld(new YouWin());
        }
    }
    “Jika score = 100 maka pindah ke wordplay YouWin2()”
    private void tulisanhealth()
    {
        showText("Health : " + health,50, 20);
    }
    “Menampilkan Health dan mengatur lokasinya”
    private void tulisanlife()
    {
        showText("Life : " + life,150, 20);
    }
    “Menampilkan Life dan mengatur lokasinya”
    private void tulisanscore()
    {
        showText("Score : " + score,250, 20);
    }
    “Menampilkan Score dan mengatur lokasinya”
    private void tulisanlaser()
    {
        showText("Laser : " + laser,360, 20);
    }
    “Menampilkan Laser dan mengatur lokasinya”
    private void tulisanlevel()
    {
        showText("Level :" + level,470, 20);
    }
    “Menampilkan Level dan mengatur lokasinya”
    private void GenerateRandomEnemy()
    {
        int x = getWidth() + 10;
“Lebar layar + 10 sehingga musuh keluar dari kanan layar”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya musuh dari koordinat Y”
        int out = Greenfoot.getRandomNumber(1000);
        if(out < 10)
        {
            addObject(new Musuh(),x , 550);
        }
    }
“Jika perulangan 1000 angka < 10 maka tambah musuh dan atur lokasinya”   
    private void GenerateRandomEnemy2()
    {
        int x = 0 - 10;
“Koordinat 0 – 10 sehiangga musuh keluar dari kiri”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya musuh koordinat Y”
        int out = Greenfoot.getRandomNumber(2000);
        if(out < 10)
            addObject(new Musuh4(),x , 100);
        }
    }
“Jika perulangan 2000 angka < 10 maka tambah musuh4 dan atur lokasinya”   
    private void tambah()
    {
        int x = getWidth() + 10;
        int y = Greenfoot.getRandomNumber(getHeight());
        int batas = Greenfoot.getRandomNumber(4000);
        if(batas < 10)
        {
            addObject(new Healthly() ,x,y);
        }
    }
    “Jika perulangan 4000 angka , 10 maka tambah Objek Healthly dan atur lokasinya”
    private void Meteor()
    {
        int x = Greenfoot.getRandomNumber(getWidth());
“Mengacak keluarnya Meteor pada Koordinat X”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya Meteor pada Koordinat Y”
        int jumlah = Greenfoot.getRandomNumber(500);
        if (jumlah < 10)
        {
            addObject(new Meteor(),x , y);
        }
    }
}
“Jika perulangan 500 angka < 10 maka tambah objek Meteor dan atur lokasinya”
6.      Place3

public class Place2 extends World
{
                   private GreenfootSound music = new GreenfootSound("open.mp3");
“Menambahkan musik dengan nama baru”
    public void started()
    {
        music.setVolume(50);
        music.play();
    }
    “Untuk mengatur dan memainkan musik”
    public void stopped()
    {
        music.stop();
        music.pause();
    }
    “Untuk stop atau pause musik”

    int health ;
    int life ;
    int score ;
    int laser2 ;
    int level ;
“Menginputkan variabel”
    public Place3()
    {   
              super(800, 600, 1);
“Mengatur Ukuran layar”
        prepare();
        health = 3;
        tulisanhealth();
“Mengatur  jumlah Health dan membuat variabel untuk memanggil method tulisanhealth()”
        life = 3;
        tulisanlife();
“Mengatur  jumlah Life dan membuat variabel untuk memanggil method tulisanlife()”
        score = 0;
        tulisanscore();
“Mengatur  jumlah Score dan membuat variabel untuk memanggil method tulisanscore()”
        Laser3 = 230;
        tulisanlaser();
“Mengatur  jumlah Laser dan membuat variabel untuk memanggil method tulisanlaser()”
        level = 3;
        tulisanlevel();
“Mengatur  jumlah Level dan membuat variabel untuk memanggil method tulisanlevel()”
    }
    private void prepare()
    {
        Player3 player = new Player3();
        addObject(player, 50, 560);
             player.setLocation(50, 560);
    }
“Menambah objek player3 dan mengatur lokasinya”   
    public void act()
    {
        GenerateRandomEnemy();
        GenerateRandomEnemy2();
        Meteor();
        tambah();
        newlevel();
“variabel untuk memanggil method masing-masing”
    }   
    public void Health(int healthplus)
    {
        health += healthplus;
        if(health == 0)
        {
            life--;
            health = 3;
            tulisanlife();
            if(life == 0)
            {
                Greenfoot.setWorld(new GameOver());
            }
        }
        tulisanhealth();
    }
    “Jika Health = 0, maka Life dikurangi 1; jika life = 0, maka pindah ke wordplay Game Over”
    public void lifeplus()
    {
        health++;
        if(health == 3)
        {
            life++;
            tulisanlife();
        }
        tulisanhealth();
    }
    “Jika Health = 3 maka Life ditambah 1”
    public void scoreplus()
    {
        score++;
        tulisanscore();
    }
        “Score ditambah 1;
“Variabel untuk memanggil method tulisanscore()”
   public int laser()
    {
        return laser;
    }
    “Memanggil Laser dimethod lain”
    public void lasermin()
    {
        tulisanlaser();
        if (laser > 0)
        {
            laser--;
        }
        “Jika Laser lebih dari 0 maka laser selalu berkurang”
        if (laser == 0)
        {
            Greenfoot.setWorld(new YouLose());
        }
    }
    “Jika Laser = 0 maka pindah ke wordplay YouLose()”
    public void newlevel()
    {
        tulisanlevel();
        if(score == 200)
        {
            Greenfoot.setWorld(new Champions());
        }
    }
    “Jika score = 200 maka pindah ke wordplay Champions()”
    private void tulisanhealth()
    {
        showText("Health : " + health,50, 20);
    }
    “Menampilkan Health dan mengatur lokasinya”
    private void tulisanlife()
    {
        showText("Life : " + life,150, 20);
    }
    “Menampilkan Life dan mengatur lokasinya”
    private void tulisanscore()
    {
        showText("Score : " + score,250, 20);
    }
    “Menampilkan Score dan mengatur lokasinya”
    private void tulisanlaser()
    {
        showText("Laser : " + laser,360, 20);
    }
    “Menampilkan Laser dan mengatur lokasinya”
    private void tulisanlevel()
    {
        showText("Level :" + level,470, 20);
    }
    “Menampilkan Level dan mengatur lokasinya”
    private void GenerateRandomEnemy()
    {
        int x = getWidth() + 10;
“Lebar layar + 10 sehingga musuh keluar dari kanan layar”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya musuh dari koordinat Y”
        int out = Greenfoot.getRandomNumber(1000);
        if(out < 10)
        {
            addObject(new Musuh(),x , 550);
        }
    }
“Jika perulangan 1000 angka < 10 maka tambah musuh dan atur lokasinya”   
    private void GenerateRandomEnemy2()
    {
        int x = 0 - 10;
“Koordinat 0 – 10 sehiangga musuh keluar dari kiri”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya musuh koordinat Y”
        int out = Greenfoot.getRandomNumber(8000);
        if(out < 10)
            addObject(new Musuh4(),x , 100);
        }
    }
“Jika perulangan 8000 angka < 10 maka tambah musuh4 dan atur lokasinya”   
    private void tambah()
    {
        int x = getWidth() + 10;
        int y = Greenfoot.getRandomNumber(getHeight());
        int batas = Greenfoot.getRandomNumber(3000);
        if(batas < 10)
        {
            addObject(new Healthly() ,x,y);
        }
    }
    “Jika perulangan 3000 angka , 10 maka tambah Objek Healthly dan atur lokasinya”
    private void Meteor()
    {
        int x = Greenfoot.getRandomNumber(getWidth());
“Mengacak keluarnya Meteor pada Koordinat X”
        int y = Greenfoot.getRandomNumber(getHeight());
“Mengacak keluarnya Meteor pada Koordinat Y”
        int jumlah = Greenfoot.getRandomNumber(500);
        if (jumlah < 10)
        {
            addObject(new Meteor(),x , y);
        }
    }
}
“Jika perulangan 500 angka < 10 maka tambah objek Meteor dan atur lokasinya”
7.    YouWin

public class YouWin extends World
{
    public YouWin()
    {   
        super(800, 600, 1);
        prepare();
“Mengatur ukuran Wordplay”
    }   
    public void prepare()
    {
        NextLevel next = new NextLevel();
        addObject(next, 700, 300);
        next.setLocation(700, 300);
        “Menambah objek NextLevel dan mengatur lokasinya”
        Menu menu = new Menu();
        addObject(menu, 400, 300);
        menu.setLocation(400, 300);
      “Menambah objek Menu dan mengatur lokasinya”
        Back back = new Back();
        addObject(back, 100, 300);
        back.setLocation(100, 300);
     “Menambah objek Back dan mengatur lokasinya”
    }
}
     8.    YouWin2

public class YouWin2 extends World
{
    public YouWin2()
    {     
       super(800, 600, 1);
        prepare();
“Mengatur ukuran Wordplay”
    }
    public void prepare()
    {
        NextLevel2 next = new NextLevel2();
        addObject(next, 700, 300);
        next.setLocation(700, 300);
“Menambah objek NextLevel2 dan mengatur lokasinya”
        Menu menu = new Menu();
        addObject(menu, 400, 300);
        menu.setLocation(400, 300);
  “Menambah Objek menu dan mengatur lokasinya”     
        Back2 back = new Back2();
        addObject(back, 100, 300);
        back.setLocation(100, 300);
“Menambah  Objek Back2 dan mengatur lokasinya”
    }
}
      9.    YouLose

public class YouLose extends World
{
    public YouLose()
    {   
        super(800, 600, 1);
        prepare();
“Mengatur  ukuran Wordplay”
    }   
    public void prepare()
    {       
        Lose lose = new Lose();
        addObject(lose, 400, 250);
        lose.setLocation(400, 250);
        “Menambah objek Lose dan mengatur lokasinya”
        PlayAgain Pa = new PlayAgain();
        addObject(Pa, 150, 500);
        Pa.setLocation(150, 500);
        “Menambah Objek PlayAgain dan mengatur lokasinya”
        Menu menu = new Menu();
        addObject(menu, 700, 500);
        menu.setLocation(700, 500);
“Menambah objek Menu dan mengatur lokasinya”
    }
}
     10.    Champions

public class Champions extends World
{
    public Champions()
    {   
        super(800, 600, 1);
        prepare();
“Mengatur ukuran Wordplay”
    }
   
    public void prepare()
    {
        Win win = new Win();
        addObject(win, 400, 250);
        win.setLocation(400, 250);
        “Menambah objek Win dan mengatur lokasinya”
        PlayAgain Pa = new PlayAgain();
        addObject(Pa, 100, 500);
        Pa.setLocation(100, 500);
        “Menambah objek PlayAgain dan mengatur lokasinya”
        Menu menu = new Menu();
        addObject(menu, 700, 500);
        menu.setLocation(700, 500);
“Menambah objek Menu dan mengatur lokasinya”
    }
}
    11.    GameOver

public class GameOver extends World
{
    public GameOver()
    {   
        super(800, 600, 1);
        prepare();
“Mengatur ukuran Wordplay”
    }
    public void prepare()
    {
        Over over = new Over();
        addObject(over, 400, 250);
        over.setLocation(400, 250);
        “Menambah objek Over dan mengatur lokasinya”
        Menu menu = new Menu();
        addObject(menu, 400, 500);
        menu.setLocation(400, 500);
“Menambah objek menu dan mengatur lokasinya”
    }
}
   Class
     1.    Player

public class Player extends Actor
{
    int Laser = 60;
    public void act()
    {
        if (Greenfoot.isKeyDown("Right"))
        {
            move(8);
        }
“Jika menekan “Right” maka kecepatan pindahnya = 8 dari kanan layar”       
        if(Greenfoot.isKeyDown("Left"))
        {
            move(-8);
        }
“Jika menekan “Left” maka kecepatan pindahnya = -8 dari kanan layar”       
        sentuh();
        tombol();
“variabel untuk memanggil method dibawah”
    }  
    public void tombol()
    {
      Place place = (Place) getWorld();
      if(Greenfoot.getKey() == "space" && Laser > 0)
      {
          setImage("Shooting.png");
          Greenfoot.playSound("tembak.wav");
          place.lasermin();
          Laser laser = new Laser();
          laser.setRotation(getRotation());
          getWorld().addObject(laser,getX(),getY());
      }
“Jika ditekan space dan Laser lebih dari 0 maka gambar diubah, sound efek dinyalakan, memanggil method Lasermin untuk mengurangi jumlah Laser, Dan menambah Laser lalu mengatur lokasinya”
      else if (Greenfoot.isKeyDown("Up"))
      {
          setLocation(getX(), getY() - 10);
          setImage("Jumping.png");       
      }
“Jika ditekan Up maka gambar diubah”
      else if (Greenfoot.isKeyDown("Down"))
      {
          setLocation(getX(), 560);
          setImage("Shielding.png");
      }
“Jika ditekan Down maka gambar diubah dan mengatur lokasinya”
      else if(getY()<560)
      {
          setLocation(getX(), getY() + 10);
          setImage("Standing.png");
      }
    }
    “Jika Koordinat Y kurang dari 560 maka atur lokasi dan ubah gambar”
    public void sentuh()
    {
        if(isTouching(Musuh.class))
        {
            removeTouching(Musuh.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place place = (Place)getWorld();
            place.Health(-1);
        }
        “Jika Objek menyentuh Musuh maka hapus Musuh , tambah objek Bom dan kurangi Health”
        if(isTouching(Healthly.class))
        {
            removeTouching(Healthly.class);
            Place place = (Place) getWorld();
            place.lifeplus();
        }
        “Jika objek menyentuh Healthly maka hapus Healthly dan tambah Life”
        if(isTouching(Meteor.class))
        {
            removeTouching(Meteor.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place place = (Place) getWorld();
            place.Health(-1);
        }
        “Jika objek menyentuh Meteor maka hapus Meteor dan kurangi Health”
        if(isTouching(BolaApi.class))
        {
            removeTouching(BolaApi.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place place = (Place) getWorld();
            place.Health(-1);
        }
    }
}
“Jika Objek menyentuh BolaApi maka hapus BolaApi dan kurangi Health”
2.      Player2

public class Player2 extends Actor
{
    int Laser = 120;
    public void act()
    {
        if (Greenfoot.isKeyDown("Right"))
        {
            move(8);
        }
“Jika menekan “Right” maka kecepatan pindahnya = 8 dari kanan layar”       
        if(Greenfoot.isKeyDown("Left"))
        {
            move(-8);
        }
“Jika menekan “Left” maka kecepatan pindahnya = -8 dari kanan layar”       
        sentuh();
        tombol();
“variabel untuk memanggil class dibawah”
    }  
    public void tombol()
    {
      Place2 place = (Place2) getWorld();
      if(Greenfoot.getKey() == "space" && Laser > 0)
      {
          setImage("Shooting.png");
          Greenfoot.playSound("tembak.wav");
          place.lasermin();
          Laser2 laser = new Laser2();
          laser.setRotation(getRotation());
          getWorld().addObject(laser,getX(),getY());
      }
“Jika ditekan space dan Laser lebih dari 0 maka gambar diubah, sound efek dinyalakan, memanggil method Lasermin untuk mengurangi jumlah Laser, Dan menambah Laser lalu mengatur lokasinya”
      else if (Greenfoot.isKeyDown("Up"))
      {
          setLocation(getX(), getY() - 10);
          setImage("Jumping.png");       
      }
“Jika ditekan Up maka gambar diubah”
      else if (Greenfoot.isKeyDown("Down"))
      {
          setLocation(getX(), 560);
          setImage("Shielding.png");
      }
“Jika ditekan Down maka gambar diubah dan mengatur lokasinya”
      else if(getY()<560)
      {
          setLocation(getX(), getY() + 10);
          setImage("Standing.png");
      }
    }
    “Jika Koordinat Y kurang dari 560 maka atur lokasi dan ubah gambar”
    public void sentuh()
    {
        if(isTouching(Musuh2.class))
        {
            removeTouching(Musuh2.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place2 place = (Place2)getWorld();
            place.Health(-1);
        }
        “Jika Objek menyentuh Musuh2 maka hapus Musuh2 , tambah objek Bom dan kurangi Health”
        if(isTouching(Healthly.class))
        {
            removeTouching(Healthly.class);
            Place2 place = (Place2) getWorld();
            place.lifeplus();
        }
        “Jika objek menyentuh Healthly maka hapus Healthly dan tambah Life”
        if(isTouching(Meteor.class))
        {
            removeTouching(Meteor.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place2 place = (Place2) getWorld();
            place.Health(-1);
        }
        “Jika objek menyentuh Meteor maka hapus Meteor dan kurangi Health”
        if(isTouching(BolaApi.class))
        {
            removeTouching(BolaApi.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place2 place = (Place2) getWorld();
            place.Health(-1);
        }
    }
}
“Jika Objek menyentuh BolaApi maka hapus BolaApi dan kurangi Health”
      3.      Player3

public class Player3 extends Actor
{
    public static int tembakX=0;
    public static int tembakY=0;
    int Laser = 230;
    public void act()
    {
        if (Greenfoot.isKeyDown("Right"))
        {
            move(8);
        }
“Jika menekan “Right” maka kecepatan pindahnya = 8 dari kanan layar”       
        if(Greenfoot.isKeyDown("Left"))
        {
            move(-8);
        }
“Jika menekan “Left” maka kecepatan pindahnya = -8 dari kanan layar”       
        sentuh();
        tombol();
        tembakX=getX();
        tembakY=getY();
“variabel untuk memanggil class dibawah”
    }  
    public void tombol()
    {
      Place3 place = (Place3) getWorld();
      if(Greenfoot.getKey() == "space" && Laser > 0)
      {
          setImage("Shooting.png");
          Greenfoot.playSound("tembak.wav");
          place.lasermin();
          Laser3 laser = new Laser3();
          laser.setRotation(getRotation());
          getWorld().addObject(laser,getX(),getY());
      }
“Jika ditekan space dan Laser lebih dari 0 maka gambar diubah, sound efek dinyalakan, memanggil method Lasermin untuk mengurangi jumlah Laser, Dan menambah Laser lalu mengatur lokasinya”
      else if (Greenfoot.isKeyDown("Up"))
      {
          setLocation(getX(), getY() - 10);
          setImage("Jumping.png");       
      }
“Jika ditekan Up maka gambar diubah”
      else if (Greenfoot.isKeyDown("Down"))
      {
          setLocation(getX(), 560);
          setImage("Shielding.png");
      }
“Jika ditekan Down maka gambar diubah dan mengatur lokasinya”
      else if(getY()<560)
      {
          setLocation(getX(), getY() + 10);
          setImage("Standing.png");
      }
    }
    “Jika Koordinat Y kurang dari 560 maka atur lokasi dan ubah gambar”
    public void sentuh()
    {
        if(isTouching(Musuh3.class))
        {
            removeTouching(Musuh3.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place3 place = (Place3)getWorld();
            place.Health(-1);
        }
        “Jika Objek menyentuh Musuh3 maka hapus Musuh3 , tambah objek Bom dan kurangi Health”
        if(isTouching(Healthly.class))
        {
            removeTouching(Healthly.class);
            Place3 place = (Place3) getWorld();
            place.lifeplus();
        }
        “Jika objek menyentuh Healthly maka hapus Healthly dan tambah Life”
        if(isTouching(Meteor.class))
        {
            removeTouching(Meteor.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place3 place = (Place3) getWorld();
            place.Health(-1);
        }
        “Jika objek menyentuh Meteor maka hapus Meteor dan kurangi Health”
        if(isTouching(BolaApi.class))
        {
            removeTouching(BolaApi.class);
            getWorld().addObject(new Bom(),getX(),getY());
            Place3 place = (Place3) getWorld();
            place.Health(-1);
        }
    }
}
“Jika Objek menyentuh BolaApi maka hapus BolaApi dan kurangi Health”
4.      Musuh

public class Musuh extends Actor
{
    public void act()
    {
        move(-3);
“Mengatur kecepatan musuh dari kanan”
        if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
“Jika Musuh menyentuh tepi layar maka hapus Musuh”
    }   
}
      5.      Musuh2

public class Musuh2 extends Actor
{
    public void act()
    {
        move(-4);
“Mengatur Kecepatan Musuh2 dari kanan”
        if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
“Jika Musuh2 Menyentuh tepi layar maka hapus Musuh2”
    }   
}
      6.      Musuh3

public class Musuh3 extends Actor
{
    public void act()
    {
        move(-5);
“Mengatur  Kecepatan Musuh3 dari kanan”
        if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
“Jika musuh3 menyentuh tepi layar maka hapus musuh3”
    }   
}
      7.      Musuh4

public class Musuh4 extends Actor
{
    public void act()
    {
          move(4);
“Mengatur kecepatan Musuh4 dari Kanan”
          if(isAtEdge())
          {
              getWorld().removeObject(this);
          }
“Jika Musuh4 menyentuh tepi layar maka hapus Musuh4”
          else if(Greenfoot.getRandomNumber(1000) < 10)
          {
              getWorld().addObject(new BolaApi(), getX(), getY());
          }
    }   
}
“Jika acak 1000<10 maka tambahkan objek BolaApi”
       8.      Laser

public class Laser extends Actor
{
   public void act()
   {
       move (15);
“Mengatur kecepatan laser dari kiri”
       sentuh();  
   }
  
   public void sentuh()
   {   
        if(isTouching(Musuh.class))
        {
            removeTouching(Musuh.class);
            getWorld().addObject(new Bom(), getX(),getY());
            Place place = (Place)getWorld();
            place.scoreplus();           
            getWorld().removeObject(this);
        }
“Jika Musuh menyentuh Laser maka hapus Musuh, tambah objek Bom, tambah score, dan hapus Laser”
        else if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
   }
}
“Jika Laser menyentuh tepi layar maka hapus objek Laser”
      9.      Laser2

public class Laser2 extends Actor
{
    public void act()
    {
       move (15);
“Mengatur kecepatan Laser2 dari kanan”
       sentuh2();
    }   
    public void sentuh2()
    {   
        if(isTouching(Musuh2.class))
        {
            removeTouching(Musuh2.class);
            getWorld().addObject(new Bom(), getX(),getY());
            Place2 place = (Place2)getWorld();
            place.scoreplus();           
            getWorld().removeObject(this);
        }
“Jika Laser2 menyentuh musuh2 maka hapus musuh 2, tambah objek Bom, tambah score dan hapus Objek Laser2”
        else if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
“Jika Laser2menyentuh tepi layar maka hapus Laser2”
    }
}
      10.      Laser3

public class Laser3 extends Actor
{
    public void act()
    {
       move (15);
“Mengatur kecepatan Laser3”
       sentuh3();
    }
“Variabel untuk memanggil method dibawah”   
    public void sentuh3()
    {   
        if(isTouching(Musuh3.class))
        {
            removeTouching(Musuh3.class);
            getWorld().addObject(new Bom(), getX(),getY());
            Place3 place = (Place3)getWorld();
            place.scoreplus();           
            getWorld().removeObject(this);
“Jika objek(Laser3) menyentuh Musuh3 maka Hapus Musuh3; tambahkan objek bom ; memanggil variabel scoreplus() dan mengahapus objek”
        }
        else if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
“dan jika objek menyentuh tepi layar maka hapus objek”
    }   
}
      11.      Exit

public class Exit extends Actor
{
    public void act()
    {
        if(Greenfoot.mousePressed(this))
        {
            Greenfoot.stop();
            setImage("CTRL+T.png");
        }
“Jika menekan objek maka mengubah gambar menjadi CTRL+T.png”
    }   
}
      12.      Credit

public class Credit extends Actor
{
    public void act()
    {
        if(Greenfoot.mousePressed(this))
        {
            Greenfoot.setWorld(new Author());
        }
“Jika menekan objek maka pindah ke wordplay Author()”
    }   
}
      13.      Menu

public class Menu extends Actor
{
    public void act()
    {
        if(Greenfoot.mousePressed(this))
        {
            Greenfoot.setWorld(new Start());
        }
“Jika menekan objek maka pindah ke wordplay Start()”
    }   
}
      14.      Help

public class Help extends Actor
{
    public void act()
    {
        if(Greenfoot.mousePressed(this))
        {
            Greenfoot.setWorld(new Petunjuk());
        }
“Jika menekan objek maka pindah ke wordplay Petunjuk()”
    }   
}
      15.      Back

public class Back extends Actor
{
    public void act()
    {
        if(Greenfoot.mousePressed(this))
        {
            Greenfoot.setWorld(new Place());
        }
“Jika menekan objek maka pindah ke worplay Place()”
    }   
}
      16.      Back2

public class Back2 extends Actor
{
    public void act()
    {
        if(Greenfoot.mousePressed(this))
        {
            Greenfoot.setWorld(new Place2());
        }
“Jika menekan objek maka pindah ke Wordplay Place2()”
    }   
}
17.      BackStart

public class BackStart extends Actor
{
    public void act()
    {
        if(Greenfoot.mousePressed(this))
        {
            Greenfoot.setWorld(new Start());
        }
“Jika menekan Objek maka pindah ke wordplay Start()”
    }   
}
      18.      NextLevel

public class NextLevel extends Actor
{
    public void act()
    {
        if (Greenfoot.mousePressed(this) ) 
        {  
            Greenfoot.setWorld(new Place2());
        }
“Jika menekan Objek maka pindah ke Wordplay Place2()”
    }   
}
      19.  NextLevel2

public class NextLevel2 extends Actor
{
    public void act()
    {
        if (Greenfoot.mousePressed(this) ) 
        {  
            Greenfoot.setWorld(new Place3());
        }
“Jika menekan Objek maka pindah ke Wordplay Place3()”
    }   
}
20.  Win

“Hanya digunakan untuk menampilkan gambar sehingga tidak diberi kondisi”
public class Win extends Actor
{
    public void act()
    {
        // Add your action code here.
    }   
}
      21.  Lose

“Hanya digunakan untuk menampilkan gambar sehingga tidak diberi kondisi”
public class Lose extends Actor
{ 
    public void act()
    {
        // Add your action code here.
    }   
}
      22.  Play

public class Play extends Actor
{
    public void act()
    {
        if(Greenfoot.mousePressed(this))
        {
            Greenfoot.setWorld(new Place());
        }
“Jika menekan objek maka pindah ke Wordplay Place()”
    }   
}
      23.  PlayAgain

public class PlayAgain extends Actor
{
    public void act()
    {
        if (Greenfoot.mousePressed(this) ) 
        {  
            Greenfoot.setWorld(new Place());
        }
“Jika Menekan Objek maka pindah ke wordplay Place()”
    }   
}
      24.  Healthly

public class Healthly extends Actor
{
    public void act()
    {
        move(-2);
“Kecepatan = -2(arah dari kanan)”
        if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
“Jika objek menyentuh tepi maka hapus objek”
    }   
}
      25.  Bom

public class Bom extends Actor
{   
public void act()
    {
        int DurasiBom = Greenfoot.getRandomNumber(300);
        if(DurasiBom < 10)
        {
            getWorld().removeObject(this);
            Greenfoot.playSound("Suara Ledakan.mp3");
        }
    }
“Jika perulangan 300 angka < 10 maka hapus objek dan mulai sound ledakan”   
}
26.  Meteor

public class Meteor extends Actor
{
    public void act()
    {
        setLocation(getX(), getY() + 5);
“Mengatur  lokasi objek agar keluar dari atas”
        if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
    }
“Jika objek menyentuh teoi layar maka objek dihapus”   
}
      27.  BolaApi

public class BolaApi extends Actor
{
    public void act()
    {
        turnTowards(Player3.tembakX,600);
“Mengatur bola api agar selalu mengejar player3 saat diposisi X”
        setLocation(getX(), getY() + 5);
“Mengatur lokasi objek agar keluar dari atas”
        if(isAtEdge())
        {
            getWorld().removeObject(this);
        }
    }
“Jika Objek menyentuh tepi layar maka objek dihapus”  
}
      28.  Over

“Hanya digunakan untuk menampilkan gambar Game Over sehingga tidak diberi kondisi”
public class Over extends Actor
{
    public void act()
    {
        // Add your action code here.
    }   
}

Alhamdulillah, Itulah dokumentasi dari game “The Adventure Spiderman”, sekali lagi silahkan download atau mainkan gamenya DISINI dan jangan lupa untuk memberi pendapat/kritik/saran/komentar yang membangun pada kolom komentar dibawah setelah kalian memainkan game “The Adventure Spiderman”. 

Baca juga : Cara Membuat Game Battleship Dengan JavaScript

Dan bagi temen-temen yang membaca postingan ini dari awal sampai akhir. Saya acungi dua jempol hehehe.. dan saya doakan semoga berkah usianya aamin...

Terimakasih 

Semoga bermanfaat dan menambah wawasan temen-temen semua.

Wassalamualaikum warohmatullahi wabarokatuh

No comments