Üst MenüForum kuralları Üst MenüGenel Haberler Üst MenüSoru Sorun Üst MenüForum Takımı Üst MenüReaL Para Üst MenüVİP Bölüm Üst MenüTurnuval Forum
OyunJet Bütün Oyunlar
Yeni Konu Gönder Yeni Yorum Gönder
 
Konuyu Oyla:
  • Toplam: 26 Oy - Ortalama: 2.85
  • 1
  • 2
  • 3
  • 4
  • 5
C Allegro ders3
Yazar Konu
onba55 Çevrimdışı
Yeni Üye
*
Yeni Üye

Yorum Sayısı: 83
Edilen Teşekkürler: 2
Alınan Teşekkürler:
0 mesajında 0 kere
Üyelik Tarihi: 12-05-2012

Rep Puanı: 55
ReaL Para: -1051.70
Yorum: #1
C Allegro ders3
<Bu dersi tamda bu gün yazmıştım Açık Ağızlı Gülümseme>

Uzun bir aradan sonra devam edelim derslerimize.Bu dersimizde klavye kontrolleri ve clear fonksiyonunu öğreneceğiz Gülümseme.Fakat bu dersimizde video olamıyacaktır kusura bakmayın ^^.

Klavye kontolleri
key[Tuş]

Bütün tuşlar :
KEY_A ... KEY_Z,
      
KEY_0 ... KEY_9,
      
KEY_0_PAD ... KEY_9_PAD,
      
KEY_F1 ... KEY_F12,

      
KEY_ESCKEY_TILDEKEY_MINUSKEY_EQUALS,
      
KEY_BACKSPACEKEY_TABKEY_OPENBRACEKEY_CLOSEBRACE,
      
KEY_ENTERKEY_COLONKEY_QUOTEKEY_BACKSLASH,
      
KEY_BACKSLASH2KEY_COMMAKEY_STOPKEY_SLASH,
      
KEY_SPACE,

      
KEY_INSERTKEY_DELKEY_HOMEKEY_ENDKEY_PGUP,
      
KEY_PGDNKEY_LEFTKEY_RIGHTKEY_UPKEY_DOWN,

      
KEY_SLASH_PADKEY_ASTERISKKEY_MINUS_PAD,
      
KEY_PLUS_PADKEY_DEL_PADKEY_ENTER_PAD,

      
KEY_PRTSCRKEY_PAUSE,

      
KEY_ABNT_C1KEY_YENKEY_KANAKEY_CONVERTKEY_NOCONVERT,
      
KEY_ATKEY_CIRCUMFLEXKEY_COLON2KEY_KANJI,

      
KEY_LSHIFTKEY_RSHIFT,
      
KEY_LCONTROLKEY_RCONTROL,
      
KEY_ALTKEY_ALTGR,
      
KEY_LWINKEY_RWINKEY_MENU,
      
KEY_SCRLOCKKEY_NUMLOCKKEY_CAPSLOCK

      KEY_EQUALS_PAD
KEY_BACKQUOTEKEY_SEMICOLONKEY_COMMAND 

Şimdi bir kareyi yukarı,aşağı,sağ ve sol ok tuşları ile hareket ettirelim Gülümseme.
#include <allegro.h>

void init();
void deinit();

int main() {
    
init();
    
//key[TUŞ]
    /*
      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 
    */
    
int x=100,y=100;
    while (!
key[KEY_ESC]) {
       
rectfill(screen,x,y,x+10,y+10,makecol(255,255,255));
       if(
key[KEY_UP])
       {
          
y--;               
       }else if(
key[KEY_DOWN])
       {
          
y++;               
       }
       
       if(
key[KEY_LEFT])
       {
          
x--;               
       }else if(
key[KEY_RIGHT])
       {
          
x++;               
       }
    }

    
deinit();
    return 
0;
}
END_OF_MAIN()

void init() {
    
int depthres;
    
allegro_init();
    
depth desktop_color_depth();
    if (
depth == 0depth 32;
    
set_color_depth(depth);
    
res set_gfx_mode(GFX_AUTODETECT_WINDOWED64048000);
    if (
res != 0) {
        
allegro_message(allegro_error);
        exit(-
1);
    }

    
install_timer();
    
install_keyboard();
    
install_mouse();
    
/* add other initializations here */
}

void deinit() {
    
clear_keybuf();
    
/* add other deinitializations here */


Şimdi burdaki mantık şudur eskiden x ve y kordinatlarına direk sayı veriyoduk mesela "rectfill(screen,100,100,110,110,makecol(255,255,255));" gibi fakat biz şimdi o yerlere değişken verdik ve klavyede yukarı,aşağı,sağ ve sol ok tuşlarına basılıp basılmadığını kontrol ettirdik ve ona göre değişkenleri artırıdık veya azaltık.Ama burda belki dikkatinizi çekmiştir yukarı basıldımı y azalıyor iyide biz böle görmedik matematik veya geometri dersinde kordinat sistemini ama bilgisayarda y tam tersidir yani yukarı doğru y azalır aşağı doğru y artar.X öğrendiğimiz gibi okulda sağa doğru artar , sola doğru azalır Gülümseme.

Biraz hareket ettirdikten sonra ki resim :

[Resim: 5qp65.jpg]

Burda bir sorun var arkasında iz bırakıyor bunuda clear donksiyonu ile hal edeceğiz :rolleyes: .

Clear fonksiyonu
Clear(Temizlenecek yer);

Şimdi bunu önceki örneğimizde uygulamalı olarak görelim Gülümseme.
#include <allegro.h>

void init();
void deinit();

int main() {
    
init();
    
//key[TUŞ]
    /*
      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 
    */
    //clear(temizlenecek yer);
    
int x=100,y=100;
    while (!
key[KEY_ESC]) {
       
rectfill(screen,x,y,x+10,y+10,makecol(255,255,255));
       if(
key[KEY_UP])
       {
          
y--;               
       }else if(
key[KEY_DOWN])
       {
          
y++;               
       }
       
       if(
key[KEY_LEFT])
       {
          
x--;               
       }else if(
key[KEY_RIGHT])
       {
          
x++;               
       }
       
clear(screen);
    }

    
deinit();
    return 
0;
}
END_OF_MAIN()

void init() {
    
int depthres;
    
allegro_init();
    
depth desktop_color_depth();
    if (
depth == 0depth 32;
    
set_color_depth(depth);
    
res set_gfx_mode(GFX_AUTODETECT_WINDOWED64048000);
    if (
res != 0) {
        
allegro_message(allegro_error);
        exit(-
1);
    }

    
install_timer();
    
install_keyboard();
    
install_mouse();
    
/* add other initializations here */
}

void deinit() {
    
clear_keybuf();
    
/* add other deinitializations here */


Biraz hareketten sonra:
[Resim: 5qpbg.jpg]

Yani clear fonksiyonu ekranı temizlememize yarıyor.Ama şimdide bir sorun oldu kare gidip geliyor (Resim almam zor oldu bu yüzden Açık Ağızlı Gülümseme.) bunu bir sonraki derste bu sorununda üstesinden geleceğiz Açık Ağızlı Gülümseme.

Not:İlk önce diğer foruma yazıp buraya kopyala yaapıştır yaptığım için sorunlar olduysa pardon Gülümseme.
12-05-2012 14:30
kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
Mucit Çevrimdışı
Bilim, Teknoloji ve PC
*
Kıdemli Üye
Senarist
Coder

Yorum Sayısı: 2,236
Edilen Teşekkürler: 397
Alınan Teşekkürler:
44 mesajında 53 kere
Üyelik Tarihi: 15-01-2012

Rep Puanı: 410
ReaL Para: 1467.80
Yorum: #2
RE: C Allegro ders3
O oo Güzel

Think different. Steve JOBS

İyi sanatçılar kopyalar, büyük sanatçılar çalar. Pablo PİCASSO

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Kendi Çalışmalarım:
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. - Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. - Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. - Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. - Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. - Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. - Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. - Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

William Shakespeare in Kral Lear adlı kitabı olan bana ulaşsın!
Ben Türk55 im.
12-05-2012 14:35
kullanıcının web sitesini ziyaret et kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
Sado Çevrimdışı
Muhammet Çolak
*
Yeni Üye

Yorum Sayısı: 662
Edilen Teşekkürler: 5
Alınan Teşekkürler:
1 mesajında 2 kere
Üyelik Tarihi: 14-01-2012

Rep Puanı: 101
ReaL Para: -324.62
Yorum: #3
RE: C Allegro ders3
Çok Teşekkürler Onur Eline Sağlık Açık Ağızlı Gülümseme

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
___________________________________

[Resim: 9gmju.gif]
12-05-2012 14:37
kullanıcının web sitesini ziyaret et kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
Yeni Konu Gönder Yeni Yorum Gönder


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  C allegro ders8 onba55 6 2,419 28-07-2012 14:44
Son Yorum: Oyuncu
  Allegro fps sayaç onba55 6 2,209 08-06-2012 15:54
Son Yorum: Oyuncu
  C Allegro ders6 onba55 8 3,203 08-06-2012 10:50
Son Yorum: Oyuncu
  C allegro ders7 onba55 4 1,897 03-06-2012 12:58
Son Yorum: Sado
  C Allegro ders1 onba55 4 2,157 28-05-2012 20:27
Son Yorum: onba55

Hızlı Menü:


Şu anda bu konuyu okuyanlar: 1 Ziyaretçi


Kurucu » Yönetici » Üst Yetkili » Yetkili » Platin Üye » Gold Üye » Silver Üye » Yeni Üye » Yasaklı Üye

Dost Linkler
İletişimReaLses Yukarı GitArşivRSS Beslemesi