Masih dengan topik membuat game perang-perangan dengan Code Block, kali ini ogut akan memberikan variasi sederhana atau trik sederhana, tetapi bermanfaat untuk membuat tampilan game rekan-rekan menjadi lebih yahut.
Artikel ini belum selesai ntar ogut terusin, karena ogut harus kembali kerja.....see you later
Artikel kali ini tidak akan menjelaskan cara untuk membuat peluru. Tapi ogut hanya memberikan ide variasi beberapa peluru pesawat yang dapat rekan-rekan buat. Ini sebagai tantangan bagi rekan-rekan untuk belajar. Jadi ogut tidak akan membahasnya dan tidak akan menulis artikelnya, serta tidak akan membagikan source code nya.
Salam rekan-rekan sekalian, ketemu lagi dengan ogut. Dan kali ini ogut masih akan menyambung tentang artikel terdahulu, yaitu artikel tentang membuat game dengan menggunakan compiler Code Block.
Kali ini topiknya adalah membuat peluru untuk pesawat jagoan agar pesawat bisa berperang.
Untuk membuat peluru tersebut caranya tidak susah-susah amat.
Ogut siapin typedef struct dan variable seperti di bawah ini.
Ini adalah fungsi void Jagoan_Fire() yang berguna untuk mengisi peluru, ingat ya posisi peluru tergantung dari posisi pesawat jagoan. Untuk lebih mudahnya perhatikan oret-oretan di bawah ini.
ABCD peluru tergantung dari posisi pesawat atau ABCD nya pesawat.
//isi peluru
void Jagoan_Fire()
{ int i;
for (i = 0; i < Total_Peluru_Jagoan; i++) { if (Peluru_Jagoan[i].aktif == 0) {
//menentukan posisi awal peluru //posisi awal peluru ditentukan oleh //posisi badan hely, pada saat hely //melepaskan peluru Peluru_Jagoan[i].Ax = ((Pesawat_Jagoan.Cx - Pesawat_Jagoan.Dx) / 2.0) + Pesawat_Jagoan.Dx - 15.0; Peluru_Jagoan[i].Bx = ((Pesawat_Jagoan.Cx - Pesawat_Jagoan.Dx) / 2.0) + Pesawat_Jagoan.Dx + 15.0; Peluru_Jagoan[i].Dx = Peluru_Jagoan[i].Ax; Peluru_Jagoan[i].Cx = Peluru_Jagoan[i].Bx;
Terakhir tampilkan peluru. Posisi peluru harus terus diupdate agar bergerak. Dan peluru yang ditampilkan hanya peluru yang aktif (Peluru_Jagoan[i].aktif == 1). Jika posisi peluru telah keluar dari layar game maka Peluru_Jagoan[i].aktif = 0.
for (i = 0; i <= Total_Peluru_Jagoan; i++)
{ //==============================================================================================
//=================================segiempat PELURU tarus disini \/ //tampilkan peluru mask
//ubah posisi peluru if (Peluru_Jagoan[i].aktif == 1) { Peluru_Jagoan[i].Ay = Peluru_Jagoan[i].Ay + 15.0; Peluru_Jagoan[i].By = Peluru_Jagoan[i].By + 15.0; Peluru_Jagoan[i].Cy = Peluru_Jagoan[i].Cy + 15.0; Peluru_Jagoan[i].Dy = Peluru_Jagoan[i].Dy + 15.0; }
//cek peluru aktif/ tidak if (Peluru_Jagoan[i].Ay > (double)(Ymax)) { Peluru_Jagoan[i].aktif = 0; }
if (Peluru_Jagoan[i].aktif == 1) { glEnable(GL_BLEND); glBlendFunc(GL_DST_COLOR, GL_ZERO);
Selamat Sore rekan-rekan sekalian, masih dalam suasana lebaran, mohon maaf lahir dan batin. Kali ini ogut akan meneruskan artikel pemrograman game 2D dengan menggunakan compiler Code Block. Artikel kali ini membahas tentang cara membuat latar belakang yang bergulung, atau animasi bergulung, sehingga game yang rekan-rekan buat akan tampak semakin hidup seperti video berikut ini.
Atau screen capture-nya seperti ini.
Untuk membuat latar belakang bergulung, ingatlah satu hal, yaitu rantai sepeda.
Waduh apa hubungan bengkel sepeda dayung dengan game ini ya...???
Untuk membuat latar belakang bergulung ogut hanya meniru rantai sepeda. Rantai sepeda panjangnya hanya segitu-gitu aja, tapi karena diputar akan terlihat seperti tidak putus-putus alias nyambung terus.
Nah itu dia rahasianya.Untuk lebih jelasnya lihat gambar di bawah ini.
Nah lho gambar apa lagi ini...???
Gambar di atas adalah gambar layar / screen game rekan-rekan yang dibagi menjadi beberapa bagian(sebelah kiri) dan gambar tekstur latar belakang(sebelah kanan) yg ogut bagi-bagi juga. Perhatikan tekstur latar belakang yang ada tanda ujung rantai. Betul ujung-ujung tekstur di program game akan ogut sambungkan lalu akan ogut putar seperti rantai sepeda. Dengan berputarnya tekstur latar belakang seperti rantai sepeda, maka latar belakang tidak akan berhenti berputar. Ini yang akan menghasilkan efek animasi yang bagus sekali.
Di program ogut membuat typedef struct seperti berikut ini.
Lalu ogut membuat tiga fungsi berikut untuk seting nilai-nilai yang diperlukan dan menampilkan efek animasi bergulung di layar monitor.
void Create_Vertex_BG(Vertex_BG Array_BG[], int total_ar, double Ymax_P)
{ int i;
//tinggi layar dibagi dengan total array //untuk membagi layar menjadi bagian yang //sama besar secara horisontal double beda_VBG = (Ymax_P * 2.0 / (double)total_ar);
for (i = 0; i < total_ar; i++) { Array_BG[i].V_Y1 = -Ymax_P + (beda_VBG * (double)i); Array_BG[i].V_Y2 = -Ymax_P + (beda_VBG * (double)(i + 1));
Array_BG[i].Index_TK = i; }
}
void Create_TK_BG(TK_BG Array_TK_BG[], int total_ar)
{ int i;
for (i = 0; i < total_ar; i++) { Array_TK_BG[i].TK_Y1 = beda_TK_BG * (double)i; Array_TK_BG[i].TK_Y2 = beda_TK_BG * (double)(i + 1); }
}
void Display_Scrolling_BG(Vertex_BG Array_BG[], TK_BG Array_TK_BG[], int total_ar_V, int total_ar_TK, unsigned int texture_BG, double Xmax_P)
{ int i;
glBindTexture(GL_TEXTURE_2D, texture_BG);
for (i = 0; i < total_ar_V; i++) { glBegin(GL_POLYGON); glTexCoord2d(0.0, Array_TK_BG[Array_BG[i].Index_TK].TK_Y1); glVertex2d(-Xmax_P, Array_BG[i].V_Y1);
Hai rekan-rekan sekalian kwmbali ogut akan membagikan sedikit ilmu tentang pemrograman game dengan menggunakan compiler Code Block.
Ini adalah lanjutan artikel ogut sebelumnya dan artikel ini berkaitan dengan artikel sebelumnya, jadi supaya rekan-rekan tidak bingung, silahkan baca juga artikel yang terkait dengan artikel ini.
Kali ini ogut akan membagikan contoh program animasi sederhana untuk membuat game perang 2D. Jika rekan-rekan menekan tombol 'J' , 'K', 'L' dan 'I'. maka pesawat akan bergerak kesana kemari mengikuti arah yang diberikan.
Untuk membuat animasi pesawat bergerak kesana kemari, caranya sangat mudah. Cukup dengan mengubah nilai titik koordinat ABCD. Ya hanya itu, dengan mengubah nilai titik koordinat persegipanjang ABCD maka pesawat akan ber-animasi.
Perhatikan potongan source code berikut ini.
//pesawat ke atas saja
if (kombinasi_tombol == 100000)
{
Pesawat_Jagoan.Ay = Pesawat_Jagoan.Ay + geser_atas_bawah;
Pesawat_Jagoan.By = Pesawat_Jagoan.By + geser_atas_bawah;
Pesawat_Jagoan.Cy = Pesawat_Jagoan.Cy + geser_atas_bawah;
Pesawat_Jagoan.Dy = Pesawat_Jagoan.Dy + geser_atas_bawah;
}
Untuk membuat pesawat bergerak ke atas, maka nilai koordinat Y ditambah. Hal ini juga berlaku untuk bergerak kekiri, kekanan dan kebawah.
Sedangkan untuk mendeteksi tombol keyboard yang ditekan, gunakan fungsi berikut ini.
//tombol kanan di tekan if (GetKeyState('L') & 0x80) { kombinasi_tombol = kombinasi_tombol + 1000000; }
//tombol kiri di tekan if (GetKeyState('J') & 0x80) { kombinasi_tombol = kombinasi_tombol + 2000000; }
//tombol atas di tekan if (GetKeyState('I') & 0x80) { kombinasi_tombol = kombinasi_tombol + 100000; }
//tombol bawah di tekan if (GetKeyState('K') & 0x80) { kombinasi_tombol = kombinasi_tombol + 200000; }
...
...
...
}
Ternyata mudah ya untuk membuat animasi game 2D, selamat belajar rekan-rekan semoga artikel sederhana ini bisa bermanfaat. Ini ada contoh animasi lain yg ogut buat dengan Code Block, prisipnya sama dengan yang ogut terangkan di atas. Nanti ogut update lagi perkembangannya.
Selamat Siang rekan-rekan sekalian...kembali ogut mau membagikan sedikit ilmu yang bermanfaat untuk prmrograman game 2D.
Program akan menampilkan tampilan seperti gambar di bawah ini. Perhatikan burung biru yang ditampilkan dengan teknik masking dan yang ditampilkan tanpa teknik masking.
Burung biru yang di tampilkan dengan teknik masking akan terlihat tanpa kotak, teknik seperti ini yang digunakan untuk menampilkan objek-objek game 2D.
Penjelasan tentang teknik masking dapat rekan-rekan lihat pada link berikut ini. Karena ogut sudah pernah membahasnya dengan menggunakan Visual Studio.
Teknik masking menggunakan dua buah tekstur, yaitu tekstur image dan tekstur mask. Jika rekan-rekan masih bingung ogut sudah pernah menulis beberapa artikel yang berkaitan dengan teknik masking, semuanya dapat Anda lihat di Daftar Isi.
Untuk menamplkan burung tanpa masking source code seperti ini.
Hai semuanya...jumpa lagi dengan ogut...kali ini ogut akan membagikan program C++ sederhana dengan menggunakan Code Block. Program akan menghasilkan penampilan seperti gambar di bawah ini.
Untuk membuat segiempat seperti itu hanya menggunakan perintah sederhana seperti berikut ini.
glBegin(GL_LINE_LOOP); glVertex2d(100.0d,100.0d); //TITIK A glVertex2d(500.0d,100.0d); //TITIK B glVertex2d(500.0d,300.0d); //TITIK C glVertex2d(100.0d,300.0d); //TITIK D glEnd();
Untuk rekan-rekan yang ingin belajar membuat game 2D objek segiempat seperti ini yang nantinya akan digunakan untuk menampilkan objek-objek game seperti pesawat, bom, misil dan lain-lain.
Halo rekan-rekan sekalian...jumpa lagi di artikel ogut yang menggunakan Code Block. Dan kali ini ogut akan memberikan contoh program me-load multi tekstur. Contoh program ini sangat bermanfaat bagi rekan-rekan yang ingin belajar membuat game 2D.
OK langsung saja, program akan menghasilkan tampilan seperti gambar di bawah ini.Di gambar terlihat dua buah persegipanjang yang berisi tekstur kucing dan cakar kucing. Gambar kucing dan cakar kucing dibuat dari file bitmap 24 bit.
Untuk menampilkan kucing dan cakar kucing caranya sangat sederhana, perhatikanlah source di bawah ini.
Selamat sore rekan-rekan sekalian...ketemu lagi dengan ogut yang punya hobi kutak-katik program grafik dan program game.
Artikel kali ini tidak akan membahas program tetapi tentang keterangan sederhana dan singkat tentang sistem koordinat kartesius 2D yang digunakan untuk pemrograman grafik dan game 2D.
Pada gambar di bawah ini rekan-rekan dapat melihat dua buah garis yang saling tegak lurus (sumbu X dan sumbu Y). Kedua garis adalah sumbu yang dipakai untuk menentukan posisi titik koordinat.
Untuk lebih jelasnya tentang posisi titik koordinat 2D, perhatikanlah gambar di bawah ini.
Di bawah ini rekan-rekan dapat melihat sebuah persegipanjang ABCD yang posisi nya berada di kwadran I. Titik A (100 , 100) berarti posisi titik A berada di sumbu X=100 dan sumbu Y=100. Demikian juga dengan posisi titik B (500 , 100) berada di posisi sumbu X=500 dan sumbu Y=100.
Hal yang sama berlaku untuk titik C dan titik D.
Di pemrograman game 2D sistem koodinat ini digunakan untuk membuat objek-objek game seperti pesawat terbang, tank, peluru, misil , canon dan lain-lain.
Sampai disini dulu rekan-rekan penjelasan sederhana tentang sistem koordinat kartesius 2D, bagi rekan-rekan yang tertarik untuk belajar tentang membuat game 2D, silahkan klik di link ini.