Membuat Game Petualangan Spiderman Menggunakan Greenfoot
Desember 15, 2017
Add Comment
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”.
:: 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
· 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
· 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
· 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
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
:: 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”
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”.
0 Response to "Membuat Game Petualangan Spiderman Menggunakan Greenfoot"
Posting Komentar