www.allegro2d.fora.pl
Forum na temat biblioteki Allegro
FAQ
Szukaj
Użytkownicy
Grupy
Galerie
Rejestracja
Profil
Zaloguj
Forum www.allegro2d.fora.pl Strona Główna
->
Kurs Allegro2D
Napisz odpowiedź
Użytkownik
Temat
Treść wiadomości
Emotikony
Więcej Ikon
Kolor:
Domyślny
Ciemnoczerwony
Czerwony
Pomarańćzowy
Brązowy
Żółty
Zielony
Oliwkowy
Błękitny
Niebieski
Ciemnoniebieski
Purpurowy
Fioletowy
Biały
Czarny
Rozmiar:
Minimalny
Mały
Normalny
Duży
Ogromny
Zamknij Tagi
Opcje
HTML:
NIE
BBCode
:
TAK
Uśmieszki:
TAK
Wyłącz BBCode w tym poście
Wyłącz Uśmieszki w tym poście
Kod potwierdzający: *
Wszystkie czasy w strefie EET (Europa)
Skocz do:
Wybierz forum
Allegro
----------------
Artykuły
Problemy
Tutoriale
Pomysły
Wykrywanie kolizji
AI - Sztuczna Inteligencja
Twórczość
Kurs Allegro2D
Grafika
Programowanie
----------------
C\C++
Pascal\Delphi
PHP i bazy danych
Inne
Kursy
Twórczość
Forum
----------------
Propozycje
Przegląd tematu
Autor
Wiadomość
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.
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