Ü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: 25 Oy - Ortalama: 3.28
  • 1
  • 2
  • 3
  • 4
  • 5
C Allegro ders4
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 ders4
Merhaba arkadaşlar bu dersimizde geçen ders söz verdiğim gibi resmin gidip gelmesini engelliyeceğiz bu yönteme "çift tampon" denir ve create_bitmap fonksiyonunu kullanacağız.Vede kare çok hızlı gidiyordu bunun için rest fonksiyonu ile oyunu 3-4 milisaniye donduracağız Gülümseme.


Çift tampon
Şimdi çift tampon nedir ilk önce onu açıklim.İlk önce şunu bilelelim geçen dersteki resmin gelip gitmesinin nedeni direk screenni temizlememizdi fakat şimdi bir tane daha ekran oluşturup resimleri yeni ekrana bastıracağız ve yeni ekranı screen e bastırıp yeni ekranı clear fonksiyonu ile temizleteceğiz ve gelip gitmeler yok olacak Gülümseme.Bu yöntem için create_bitmap fonksiyonunu kullanacağız peki bu nasıl kullanılır Gülümseme.

BITMAP *değişken_ismi = create_bitmap(genişlik,yükseklik);

#include <allegro.h>

void init();
void deinit();

int main() {
    
init();
    
//BITMAP *değişken_ismi = create_bitmap(genişlik,yükseklik);
    
BITMAP *ekran=create_bitmap(640,480);
    
int x=100,y=100;
    while (!
key[KEY_ESC]) {
       
rectfill(ekran,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++;               
       }
       
blit(ekran,screen,0,0,0,0,640,480);
       
clear(ekran);
    }

    
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 gelip gitmeler yok olmuştur Gülümseme.Fakat BITMAP *ekran=create_bitmap(640,480); burda ki 640 ve 480 nerden geliyor dimi Gülümseme.Burdan geliyor set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0); bu fonksiyon pencere oluşturmamızı sağlar.Bakın bundada 640 ve 480 var Açık Ağızlı Gülümseme.Bu 640 ve 480 pencerenin genişliği ve yüksekliği oluyor.Bizde yeni ekranımız tam olarak pencere kadar olsun istediğimiz için aynı değerleri girdik.

Rest fonksiyonu
Rest fonksiyonu allegroda tanımlı bir timer dır.Aslında sleep fonksiyonuna benzer.Bu fonksiyon oyunu sizin girdiğiniz kadar milisaniye durdurur.(1000 milisaniye=1 saniye)
rest(değer);
Şimdi aynı örneğe uygulayalım.
#include <allegro.h>

void init();
void deinit();

int main() {
    
init();
    
//rest(değer);
    
BITMAP *ekran=create_bitmap(640,480);
    
int x=100,y=100;
    while (!
key[KEY_ESC]) {
       
rectfill(ekran,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++;               
       }
       
blit(ekran,screen,0,0,0,0,640,480);
       
clear(ekran);
       
rest(5);
    }

    
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 */


Evet gözle görülür bir şekilde yavaşlama oldu.Daha çok yavaşlatmak isterseniz 5 i artırın ama önerim çok fazla artırmayın yoksa kasıyormuş gibi olur Gülümseme.
13-05-2012 7:34
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: #2
RE: C Allegro ders4
işime yaradı saol onur teşekkürler ders için

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

[Resim: 9gmju.gif]
13-05-2012 10:10
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
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: #3
RE: C Allegro ders4
güzel dersler.

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.
13-05-2012 11:31
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
Oyuncu Çevrimdışı
Unity 3d - Ses & Dj
*
Yeni Üye

Yorum Sayısı: 2,693
Edilen Teşekkürler: 268
Alınan Teşekkürler:
112 mesajında 137 kere
Üyelik Tarihi: 29-03-2012

Rep Puanı: 811
ReaL Para: 1691.10
Yorum: #4
RE: C Allegro ders4
Helal olsun. Güzel paylaşım. 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.
13-05-2012 14:18
kullanıcının tüm mesajlarını bul Teşekkür Et Alıntı ile Cevapla
EYETRON Çevrimdışı
Game Developer&3D
*
Kıdemli Üye

Yorum Sayısı: 1,487
Edilen Teşekkürler: 313
Alınan Teşekkürler:
64 mesajında 72 kere
Üyelik Tarihi: 03-03-2012

Rep Puanı: 165
ReaL Para: 891.38
Yorum: #5
RE: C Allegro ders4
SağolGülümseme

Cahile söz anlatmak, deveye hendek atlatmaktan zordur.
13-05-2012 21:14
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,421 28-07-2012 14:44
Son Yorum: Oyuncu
  Allegro fps sayaç onba55 6 2,213 08-06-2012 15:54
Son Yorum: Oyuncu
  C Allegro ders6 onba55 8 3,208 08-06-2012 10:50
Son Yorum: Oyuncu
  C allegro ders7 onba55 4 1,902 03-06-2012 12:58
Son Yorum: Sado
  C Allegro ders1 onba55 4 2,163 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