michalos13 |
Wysł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. |
|