Autor Wiadomość
michalos13
PostWysłany: Pon 20:02, 09 Mar 2009    Temat postu: Podwójne buforowanie

Wstęp

Żeby na ekranie nic nam nie "mrugało" przyda się technika podwójnego buforowania. Wbrew pozorom nie jest to trudne i nie zajmuje to zbyt wiele linijek. Zaczynajmy.

Tworzymy bitmapę

Najpierw zrobimy sobie bitmapę o nazwie bufor na której wyświetlimy np ludka.


Cytat:
BITMAP *bufor = NULL;


No to teraz zadeklarowaliśmy sobie wskaźnik do naszej BITMAPY o nazwie bufor, ale nie jest to jeszcze bitmapa, teraz ją zrobimy:


Cytat:
bufor = create_bitmap(640,480);


Więc teraz już zrobiliśmy sobie bitmapę o rozmiarach 640x480px, ale może to być również inna wartość, jaką sobie wybierzemy(najczęściej wybiera się taką jak rozdzielczość ekranu którą ustawiliśmy w Allegro.)

Kopiujemy obraz na bitmapę

Następnie pokażę wam jak wyświetlić np naszego ludka tak aby nie mrugał, to bardzo proste:


Cytat:
masked_blit(ludek, bufor, 0,0, ludek_x, ludek_y, ludek->w, ludek->h);


Zamiast screen daliśmy bufor. Teraz skopiowaliśmy naszego ludka na bitmapę bufor, więc teraz trzeba tą bitmapę(bufor) wyświetlić na ekranie:


Cytat:
blit( bufor, screen, 0,0,0,0, 640,480);


I tyle..prawda że proste.

Powered by phpBB © 2001, 2005 phpBB Group