Selasa, 04 Agustus 2015

Font untuk Game Shoot Them Up

Menampilkan font di game shoot them up

(tanpa source code program)

Selamat Pagi semuanya, ketemu kembali dan tak terasa sudah berganti bulan rupanya, setelah akhir bulan july lalu banyak urusan event di Ubud, sekarang ogut kembali lagi nge-blog.
Artikel kali ini akan membahas cara untuk menampilkan font di program game shoot them up, source code program tidak tersedia untuk artikel ini karena source code program telah digabung pada artikel terdahulu.


Satu lagi syarat yang harus dimiliki oleh sebuah game adalah text atau berbagai keterangan berbentuk tulisan yang harus ditampilkan di layar untuk memudahkan pemain berinteraksi dengan game.

Untuk menampilkan tulisan atau text seperti gambar di atas caranya sangat sederhana.

Pertama create font

unsigned int create_font(unsigned int font_size, HDC hdc_p)
{   
HFONT hfont_var;
unsigned int listbase_var;
   
listbase_var = glGenLists(128);
   
hfont_var = CreateFont(font_size, 0, 0, 0,
FW_BLACK,
FALSE, FALSE, FALSE,
ANSI_CHARSET,
OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
FF_DONTCARE | 
DEFAULT_PITCH,
"Arial");
if(!hfont_var)
{
MessageBox(NULL, "Can not create font",
"Font Error", MB_OK);
return NULL;
}

SelectObject(hdc_p, hfont_var);
wglUseFontBitmaps(hdc_p, 32, 128, listbase_var);

return listbase_var;
}

Display text yang ingin ditampilkan di game.

void display_text(unsigned int listbase_param,double X_p, double Y_p, char *string_param)
{
//tidak ada yang perlu di display, karena string ==NULL
if(string_param == NULL)  
return;
glRasterPos2d(X_p, Y_p);
glPushAttrib(GL_LIST_BIT);
glListBase(listbase_param - 32);
glCallLists(strlen(string_param), GL_UNSIGNED_BYTE, string_param);
glPopAttrib();
}

void Display_ke_Screen()
{   
...
...
...
//Text di screen
glBindTexture(GL_TEXTURE_2D, font_orange);
display_text(My_ListBase1, -700.0, 800.0, "Power :");

_itoa_s(Pesawat[0].Power, buffer, 10);
display_text(My_ListBase1, -450.0, 800.0, buffer);

display_text(My_ListBase1, -150.0, 800.0, "Bomb :");
_itoa_s(Pesawat[0].Bomb, buffer, 10);
display_text(My_ListBase1,  100.0, 800.0, buffer);
display_text(My_ListBase1,  250.0, 800.0, "Score :");
_itoa_s(Pesawat[0].Score, buffer, 10);
display_text(My_ListBase1,  500.0, 800.0, buffer);

glBindTexture(GL_TEXTURE_2D, font_merah);
if (Pesawat[0].Power == 0)
display_text(My_ListBase1, -200.0, 0.0, "Game Over");
if ((Big_Boss[0].Power == 0) && (Counter_Aktifkan_Object > 22))
display_text(My_ListBase1, -200.0, 0.0, "You Win !!!");
SwapBuffers(hdc_global_var);                                    
}

Dan terakhir hapus font sebelum menutup program.

void hapus_font(unsigned int listbase_param)
{
   if(listbase_param != 0)
      glDeleteLists(listbase_param, 128);
}

Demikian rekan-rekan cara membuat font untuk game shoot them up, terima kasih karena telah membaca artikel ini, sampai jumpa di artikel berikutnya.

Salam Sukses Selalu


Heriady
heriady.yoh@gmail.com


Artikel terkait

Panduan Lengkap Membuat Game Perang Shoot Them Up

Vektor R2