Car Collect Coin
Link game di Greenfoot: https://www.greenfoot.org/scenarios/26055
Car Collect Coin adalah sebuah game dengan tema mobil di mana tujuan dari playernya adalah untuk mendapatkan score dalam bentuk poin sebanyak-banyaknya sambil menghindari mobil-mobil musuh yang berlalu.
Controls:
W = Speed up
S = Speed down
A / D = Turn left / right
Car
Pertama, kita buat karakter dari player terlebih dahulu. Buatlah sebuah class bernama Car. Kemudian klik kanan pada class Car dan klik Open editor.
Dalam class Car ini, kita ingin supaya kita sebagai player dapat mengontrol gerakan dari class ini, seperti jika kita menekan d, maka class Car akan berbelok. Kita juga akan masukkan ketika class Car tersebut menyentuh ujung layer maka gameplay akan berakhir. Untuk Greenfoot.playSound(), file sound bisa dicari di internet.
Kemudian kita akan membuat fungsi baru di mana ketika class Car menyentuh point Class, maka akan bertambah score. Sebelumnya kita tuliskan variable public int score = 0, apabila menyentuh class point, score bertambah 10. Apabila menyentuh class point2, score bertambah 30.
Point & Point 2
Untuk class Point dan Point 2 cukup dibuat subclass dari actor saja. Set image yang berbeda untuk kedua class tersebut karena mereka memberikan jumlah point yang berbeda.
NPC
Kemudian kita buat class bernama NPC, untuk musuh yang akan muncul di game tersebut.
Kita akan membuat sebuah function baru bernama crash. Apabila NPC menyentuh class Car, maka gameplay akan berakhir. Apabila NPC menyentuh class NPC lainnya, maka kita akan remove NPC lainnya dari world supaya tidak terlihat berantakan. Jika class NPC menyentuh ujung layar, maka class NPC akan diremove.
Kemudian kita buat subclass dari NPC bernama blue, green, amb, bluer, greener, dan amber. Untuk penamaan NPCnya bebas, pada setiap subclass dari NPC kita masukkan function crash() yang sudah kita buat di class NPC. Alasan kenapa kita buat function crash() di NPC adalah supaya kita tidak harus menuliskan coding untuk function crash() satu persatu di setiap subclass NPC.
Music (Optional)
Selanjutnya kita buat background music dengan membuat subclass dari Actor bernama music. Kita buat variable private static GreenfootSound music = new GreenfootSound(), untuk lagunya dapat kalian pilih sendiri, dan private boolean isMuted, di mana ini akan memberi tau Greenfoot jika lagunya muted, apa yang akan ia lakukan sesuai dengan coding yang sudah diterapkan.
Dalam class music, ketika kita klik menggunakan mouse pada class music tersebut, maka lagu akan berputar ataupun berhenti. Dan image dari class tersebut berubah.
MyWorld
Di dalam class World, kita buat sebuah subclass bebas namanya, untuk disini namanya default yaitu MyWorld. Di class MyWorld ini, main gameplay dari game akan kita buat.
Di class MyWorld, kita akan membuat supaya subclass dari class NPC akan muncul secara random dari sisi kiri dan kanan layar. Dan juga membuat class point dan point2 spawn secara random di class MyWorld menggunakan kode Greenfoot.getRandomNumber(). Untuk Greenfoot.isKeyDwon(“enter”) ini, kita akan gunakan untuk reset MyWorld jadi ketika player mati, hanya cukup dengan menekan enter maka player bisa main ulang lagi gamenya.
Dalam function prepare(), kita letakkan class Car sebagai posisi awal dia muncul. Kita juga letakkan class music di ujung layar supaya tidak mengganggu gameplay.
Maka akan terlihat hasil seperti ini.
Screen dari gameplaynya.
Screen yang diperlihatkan apabila player menabraki mobil lain atau ujung screen.
Title
Kemudian kita buat subclass dari Actor bernama Title, di class ini kita akan membuat semacam menu di layar gamenya.
TitleScreen
Subclass dari World, kita berikan nama TitleScreen. Kita set image yang sama seperti pada class MyWorld.
Dalam function act(), kita membuat apabila kita menekan tombol space, maka World tersebut akan mengset world baru yaitu MyWorld. Apabila kita menekan tombol m, maka layar untuk tutorial akan muncul.
Untuk di function prepare(), terdapat class car_t, blue_t, amber_t, greener_t, dan juga title. Class ini hanya saya gunakan untuk memperhias class TitleScreen saja. Maka hasilnya akan terlihat seperti di bawah.
Controls
Di class controls, saya set image dari class tersebut controls untuk cara bermain game tersebut. Kalian juga bisa gunakan getWorld().showText() untuk menunjukkan controlnya.
Tutor
Merupakan subclass dari controls. Dalam class ini, saya set image manual untuk control. Apabila kalian menunjukkan controlnya melalui getWorld().showText() di class Controls, maka class ini tidak diperlukan.
Tutorial
Selanjutnya kita buat subclass dari World bernama Tutorial. Kita set image yang sama untuk class Tutorial ini dengan class MyWorld.
Dalam class Tutorial, apabila dari sebelumnya class TitleScreen ditekan tombol m, maka akan muncul class Tutorial ini yang menunjukkan control dari class Controls. Apabila tombol space ditekan, maka Greenfoot akan set world baru yaitu MyWorld.
Di function prepare(), kita tambahkan class controls dan class tutor.
Maka hasilnya akan terlihat seperti ini.
Penuis:
- Yogi Udjaja
- Felix Wison Anggara