Jumat, 07 Agustus 2015

Skenario untuk Game Perang Shoot Them Up

Membuat skenario di game shoot them up


Selamat Pagi rekan-rekan semua, pada pagi hari ini ogut akan memberikan contoh skenario yang harus disusun untuk game shoot them up. Artikel ini adalah artikel terakhir yang ogut tulis tentang game shoot them up karena semua materi yang berhubungan dengan game ini telah ogut sampaikan ke rekan-rekan melalui blog ini. Tapi jangan sedih ya, berikutnya ogut akan  menulis tentang game engine sederhana yang sebelumnya pernah disinggung.

Ok kita mulai saja...
Satu lagi cara untuk membuat game menjadi lebih menarik dan variatif adalah dengan membuat skenario pada game itu sendiri. Pada contoh program di artikel ini rekan-rekan dapat melihat bahwa musuh ogut buat menjadi tiga macam dan ketiga musuh tersebut mempunyai karakter yang berbeda. Musuh-musuh di atas ogut tampilkan tidak secara bersamaan tetapi berdasarkan skenario yang ogut susun, dan di antara musuh-musuh yang tampil di layar ogut sisipkan bonus, di bagian akhir dari game ogut menampilkan Big Boss sebagai lawan terakhir yang harus dimusnahkan.



Rekan-rekan dapat membuat puluhan variasi sendiri sesuai dengan selera, tetapi ogut sarankan sebelum memulai susunlah skenario untuk game tersebut agar hasil akhir dapat optimal.

Berikut ini ogut sertakan penggalan listing Main_Program.cpp dari program game shoot them up tentang cara menampilkan musuh secara berurutan sesuai skenario yang ogut buat, pergunakanlah timer untuk menampilkan musuh di layar.

typedef struct
{
int active;

double First;
double Second;
double Delay;

bool Get_First;
}Timer;

//fungsi yang berguna untuk menghitung waktu tertentu
//jika nilai Delay diisi dengan 10000(milidetik), maka
//My_Timer akan menghasilkan nilai true jika
//waktu telah melewati 10 detik
bool My_Timer(Timer &Timer_P)
{
if (Timer_P.active == 1)
{
if (Timer_P.Get_First)
{
Timer_P.First = timeGetTime();

Timer_P.Get_First = false;
}

Timer_P.Second = timeGetTime();

if ((Timer_P.Second - Timer_P.First) > Timer_P.Delay)
{
Timer_P.Get_First = true;

return true;
}
}

return false;
}

//nilai awal timer
Game_Timer.active = 1;
Game_Timer.Get_First = true;
Game_Timer.Delay = 1000.0;  //1 detik

void Display_ke_Screen()
{
...
...
...
//Scenario
if (My_Timer(Game_Timer))
{
if (Counter_Aktifkan_Object == 1)
{
Aktifkan_Musuh1_0_3(Enemy_1);
Game_Timer.Delay = 10000.0;
}

if (Counter_Aktifkan_Object == 2)
{
Aktifkan_Musuh2_0_3(Enemy_2);
Game_Timer.Delay = 5000.0;
}


if (Counter_Aktifkan_Object == 3)
{
//isi BONUS
Aktifkan_Bonus(Bonus, total_bonus);
SoundEffect[6].Play(false);
}

if (Counter_Aktifkan_Object == 4)
{
Aktifkan_Musuh1_4_6(Enemy_1);
Game_Timer.Delay = 10000.0;
}

if (Counter_Aktifkan_Object == 5)
{
Aktifkan_Musuh3_0_2(Enemy_3);
}

if (Counter_Aktifkan_Object == 6)
{
Aktifkan_Musuh2_4_6(Enemy_2);
Game_Timer.Delay = 5000.0;
}


if (Counter_Aktifkan_Object == 7)
{
//isi BONUS
Aktifkan_Bonus(Bonus, total_bonus);
SoundEffect[6].Play(false);
}

if (Counter_Aktifkan_Object == 8)
{
Aktifkan_Musuh1_7_10(Enemy_1);
Game_Timer.Delay = 10000.0;
}

if (Counter_Aktifkan_Object == 9)
{
Aktifkan_Musuh3_3_5(Enemy_3);
}

if (Counter_Aktifkan_Object == 10)
{
Aktifkan_Musuh2_7_9(Enemy_2);
Game_Timer.Delay = 5000.0;
}

if (Counter_Aktifkan_Object == 11)
{
//isi BONUS
Aktifkan_Bonus(Bonus, total_bonus);
SoundEffect[6].Play(false);
}

if (Counter_Aktifkan_Object == 12)
{
Aktifkan_Musuh1_11_12(Enemy_1);
Game_Timer.Delay = 10000.0;
}

if (Counter_Aktifkan_Object == 13)
{
Aktifkan_Musuh1_13_16(Enemy_1);
}

if (Counter_Aktifkan_Object == 14)
{
Aktifkan_Musuh3_6_7(Enemy_3);
Game_Timer.Delay = 5000.0;
}

if (Counter_Aktifkan_Object == 15)
{
//isi BONUS
Aktifkan_Bonus(Bonus, total_bonus);
SoundEffect[6].Play(false);
}

if (Counter_Aktifkan_Object == 16)
{
Aktifkan_Musuh2_10_12(Enemy_2);
Game_Timer.Delay = 10000.0;
}

if (Counter_Aktifkan_Object == 17)
{
Aktifkan_Musuh1_17_20(Enemy_1);
}

if (Counter_Aktifkan_Object == 18)
{
Aktifkan_Musuh3_8_9(Enemy_3);
}

if (Counter_Aktifkan_Object == 19)
{
Aktifkan_Musuh2_13_14(Enemy_2);
}

if (Counter_Aktifkan_Object == 20)
{
Aktifkan_Musuh1_21_24(Enemy_1);
Game_Timer.Delay = 5000.0;
}

if (Counter_Aktifkan_Object == 21)
{
//isi BONUS
Aktifkan_Bonus(Bonus, total_bonus);
SoundEffect[6].Play(false);

Game_Timer.Delay = 15000.0;
}

if (Counter_Aktifkan_Object == 22)
{
//aktifkan Big Boss
Big_Boss[0].Power = 20000;
}

Counter_Aktifkan_Object++;
}
...
...
...
}

Demikian rekan-rekan cara membuat game shoot them up, terima kasih karena telah membaca rentetan artikel-artikel yang ogut tulis, sampai jumpa di artikel berikutnya.  Jika ada di antara rekan-rekan yang ingin menyumbangkan tulisan / program / ide akan ogut terima dengan senang hati dan hasil karya rekan-rekan akan ogut terbitkan di blog ini tanpa edit tanpa sensor serta nama rekan yang menulis akan ogut sebutkan tanpa diedit-edit.

Salam Sukses Selalu


Heriady
heriady.yoh@gmail.com




Artikel terkait

Panduan Lengkap Membuat Game Perang Shoot Them Up

Vektor R2