Forum www.allegro2d.fora.pl Strona Główna

www.allegro2d.fora.pl
Forum na temat biblioteki Allegro
 

Podwójne buforowanie

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.allegro2d.fora.pl Strona Główna -> Artykuły / Kurs Allegro2D
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
michalos13
Administrator



Dołączył: 03 Mar 2009
Posty: 27
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

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.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.allegro2d.fora.pl Strona Główna -> Artykuły / Kurs Allegro2D Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
deoxBlue v1.0 // Theme created by Sopel stylerbb.net & programosy.pl

Regulamin