Pazartesi, Ekim 05, 2009

Allegro ile İlk Programımız

Daha önce allegronun derlenmesini ve IDE ayarlarının nasıl olacağından bahsetmiştim. Zaten işin zor kısmı başlangıç aşaması yani, bir şeyleri hazırlayıp kullanıma uygun hale getirmek. Artık ortamımız Allegro ile program yazmaya uygun hale geldiğine göre ilk örneğimizi yapalım

Bu programda yön tuşlarını kullanarak ekrandaki karakteri hareket ettiriyoruz. Programdan çıkmak içinde ESC tuşunu kullanıyoruz. Yine kod içerisinde mümkün olduğunca açıklama satırları kullanamaya çalıştım.

ÖNEMLİ: Sakın böyle bilmiş bilmiş konuşmama aldanmayın :)) bende daha yeni öğreniyorum Allegroyu. Öğrendikçe de burada paylaşacağım. Kaynağım burasıdır.

#include<allegro.h>

int x = 10;
int y = 10;

int main()
{
/*Allegro fonksiyonlarını kullanacağımızı
programa haber veriyoruz. Muhakka olmalı*/
allegro_init();

//Klavye kullanımını aktif hale getirir
install_keyboard();

/*Ekran çözünürlüğünü değiştirmek için kullanılır.
5 parametre alır. 1. herzaman GFX_AUTODETECT dir
Sonraki iki parametre ekran boyutu. Diğer iki parametre
daha fazla alan gerektiren programlarda kullanılır.*/
set_gfx_mode(GFX_AUTODETECT,640,480,0,0);

/*Basılan tuşlar "key" adlı bir dizi ile öğrenilir
---TUŞ LİSTESİ---

KEY_A - KEY_Z,
KEY_0 - KEY_9,
KEY_0_PAD - KEY_9_PAD,
KEY_F1 - KEY_F12,

KEY_ESC, KEY_TILDE, KEY_MINUS, KEY_EQUALS,
KEY_BACKSPACE, KEY_TAB, KEY_OPENBRACE, KEY_CLOSEBRACE,
KEY_ENTER, KEY_COLON, KEY_QUOTE, KEY_BACKSLASH,
KEY_BACKSLASH2, KEY_COMMA, KEY_STOP, KEY_SLASH,
KEY_SPACE,

KEY_INSERT, KEY_DEL, KEY_HOME, KEY_END, KEY_PGUP,
KEY_PGDN, KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN,

KEY_SLASH_PAD, KEY_ASTERISK, KEY_MINUS_PAD,
KEY_PLUS_PAD, KEY_DEL_PAD, KEY_ENTER_PAD,

KEY_PRTSCR, KEY_PAUSE,

KEY_ABNT_C1, KEY_YEN, KEY_KANA, KEY_CONVERT, KEY_NOCONVERT,
KEY_AT, KEY_CIRCUMFLEX, KEY_COLON2, KEY_KANJI,

KEY_LSHIFT, KEY_RSHIFT,
KEY_LCONTROL, KEY_RCONTROL,
KEY_ALT, KEY_ALTGR,
KEY_LWIN, KEY_RWIN, KEY_MENU,
KEY_SCRLOCK, KEY_NUMLOCK, KEY_CAPSLOCK

KEY_EQUALS_PAD, KEY_BACKQUOTE, KEY_SEMICOLON, KEY_COMMAND*/
while(!key[KEY_ESC])
{
/*Program basılan tuşların listesini arabellekte tutar.
bu fonksiyon ile arabelleği temizlemiş oluruz.*/
clear_keybuf();

/*Ekranı çizim yapmak için hazır hale getirir.
Ekranda yapacağımız her değişiklkten önce bu fonksiyonu kullanırız.*/
acquire_screen();

/*Ekrana metin yazdırmak(çizmek) için kullanılır.7 Parametresi var
1.çizdirmek istediğimiz yer. İkinci parametre fon tipi için.
Eğer özel bir fon tipi kullanmak istemezsek "font" yazmak yeterli.
Bu sayede Allegro kendi temel fontunu kullanır.3. parametre
çizdirmek istediğimiz metin. 4 ve 5. parametreler metnin çizdirileceği
koordinatlar.6.parametre metinin rengi.7.Parametre ise arka plan rengidir.
makecol() fonksiyonu 3 parametre alır sırası ile kırmızı(R),yeşil(G) ve mavi (B)
0-255 arasında sayı değeri alır. 3 parametrenin karışımı ile oluşan rengin değerini döndürür.
*/
textout_ex(screen,font," ",x,y,makecol(0,0,0),makecol(0,0,0));

if(key[KEY_UP])
y--;
else if (key[KEY_DOWN])
y++;
else if (key[KEY_RIGHT])
x++;
else if (key[KEY_LEFT])
x--;

textout_ex(screen,font,"@",x,y, makecol(255,0,0),makecol(0,0,0));

//Ekranda yapılan değişiklikleri uygular
release_screen();

//DÖngünün içinde bekleme yapar 10 milisaniye
rest(10);
}
return 0;
}
/*Allegroya main bloğunun sonlandığını bildirir
olmazsa olamazlardan dıur*/
END_OF_MAIN();

Hiç yorum yok: