1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

Giriş/Çıkış

PDF Yazdır e-Posta

Written by Admin

Posted on 05 Eylül 2010

Son Güncelleme 05 Eylül 2010

Enson yaptığımız uygulama basit ve kullanışsız olmasına rağmen çok önemliydi. Şimdi son uygulamamızın üzerine eklemeler yapalım.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <allegro.h>
 
int x = 10;
int y = 10;
 
int main(){
 
allegro_init();
install_keyboard();
set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0);
 
while ( !key[KEY_ESC] ){
 
clear_keybuf();
 
acquire_screen();
 
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));
 
release_screen();
 
rest(50);
 
}
 
return 0;
 
}
END_OF_MAIN();

Bu program ekrana bir "@" karakteri yazdıracak ve kullanıcının yön tuşları ile bu karakteri hareketlendirmesini sağlayacaktır.

while ( !key[KEY_ESC] ) komutu esc ye basılıncaya kadar programın çalışması için kullanılır.

Allegronun içerdiği tuş komutlarını aşağıdaki şekilde gösterebiliriz.

 

      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
 

 

Klavyede basılan her tuş bir önbellekte tutulur. clear_keybuf() komutu ile bu önbellek temizlenir. Alacağımız her tuş komutundan önce önbelleği bu komut ile temizlemeliyiz.

acquire_screen() komutu ekranın çizim için hazırlanmasını sağlar. Bütün çizim işlemlerinden önce bu komutu kullanmak zorundayız. Çizim işlemimiz bittikten sonra ise release_screen() komutunu kullanmamız gerekir.

textout_ex() komutu ekrana bir text yazdırmaya yarar. Bu komut yedi parametre alır. Birinci parametre yazıyı nereye yazacağınız ile ilgilidir. Allegro screen isminde gerçek ekranı gösteren bir değişken oluşturur. Şimdilik sadece bunu kullanacağız. İkinci parametre kullanılacak fonttur. Eğer kendi fontunuzu kullanmak istemiyorsanız sadece font yazıp geçin bu allegronun kendi temel fontunu kullanmanızı sağlayacaktır. Sonraki parametre ekrana yazdırılacak metindir. Sonraki iki parametre yazınızın yazılacağı x ve y koordinatlarını gösterir. Bir pozisyonu ayarlarken unutmamanız gereken şey 0,0 koordinatı sol üst köşeyi gösterir. Eğer x e ekleme yaparsanız pozisyonunuz sağa doğru değişir, eğer y ye ekleme yaparsanız pozisyonunuz aşağıya doğru değişecektir.

Sonraki parametre yazı rengini tanımlar. Bu paramatre makecol(r,g,b) üç parametre alır ve bunlar kırmızı, yeşil ve mavi oranlarını belirtir. Bunlar en fazla 255 e kadar olabilir.

Son parametre ise yazının arka plan rengini belirler.

rest() komutu programı ayarladığınız süre boyunca mili saniye cinsinden bekletmek için kullanılır.