Allegro opis (1).pdf

(71 KB) Pobierz
GRAFIKA KOMPUTEROWA
Podstawy programowania graficznego w środowisku Windows z biblioteką Allegro
1. Tryb graficzny
Obraz na ekranie jest siatką pikseli, z których każdy może być wyświetlany w jednym z dostępnych
kolorów. Współrzędne pikseli wyznaczone są względem lewego górnego rogu okna programu (lub
całego ekranu w trybach pełnoekranowych). Piksel w lewym górnym rogu ma współrzędne (0,0).
Współrzędna pozioma rośnie w prawo, a pionowa w dół.
2. Biblioteka Allegro
Biblioteka Allegro zawiera funkcje pozwalające na łatwe utworzenie okna bądź uruchomienie
pełnoekranowego trybu graficznego, prostą obsługę klawiatury i myszki oraz wiele innych funkcji
(takich jak obsługa dźwięku, czy pomiar czasu), które nie będą tu omawiane.
3. Instalacja biblioteki Allegro
Bibliotekę Allegro można pobrać ze strony http://www.allegro.cc/files/ - należy pobrać z sekcji
Binary, podsekcji Allegro 4.2.2 plik odpowiadający używanemu kompilatorowi lub ewentualnie
wersję wcześniejszą (np. dla Visual Studio 2005 bez SP1 będzie to wersja dla Visual C++ 7.1).
Zalecane jest również pobranie pliku z dokumentacją biblioteki.
Pliki biblioteki Allegro należy rozpakować. Aby biblioteka mogła być używana przez Visual Studio,
należy w opcjach (Tools/Options/Projects and Solutions/VC++ Directories) dodać odpowiednie
ścieżki do miejsca, gdzie rozpakowana została biblioteka Allegro: ścieżkę do katalogu „include”
biblioteki w zakładce „Include files” oraz ścieżke do katalogu „lib” w zakładce „Library files”. Inną
metodą jest dodanie odpowiednich ścieżek w ustawieniach danego projektu (w każdym projekcie,
w którym korzystamy z biblioteki Allegro). Ostatnią rzeczą jest skopiowanie z katalogu „bin” pliku
alleg42.dll i przeniesienie go do folderu naszego programu albo folderu systemowego (wtedy plik
będzie widoczny dla wszystkich programów). Po tych krokach biblioteka Allegro jest gotowa do
wykorzystania.
Aby móc wykorzystać bibliotekę Allegro w danym projekcie należy w opcjach linkera
(Project/<nazwa> Properties.../Configuration Properties/Linker/Input/Additional Dependencies)
dopisać „alleg.lib”, co jest wskazówką dla linkera, że powinien dołączyć bibliotekę Allegro do
programu.
4. Podstawowe funkcje Allegro
allegro_init() - inicjalizuje bibliotekę Allegro
install_keyboard() - inicjalizuje obsługę klawiatury
key[] - globalna tablica przechowująca aktualny stan klawiszy, jako indeksu tablicy należy używać
wartości KEY_* (np. KEY_ESC )
set_color_depth( bits ) - ustawia aktywny tryb kolorów na określoną liczbę bitów na piksel
set_gfx_mode( tryb, szerokość, wysokość, vw, vh ) - ustawia tryb graficzny
tryb - wybór trybu ( GFX_AUTODETECT_WINDOWED lub GFX_AUTODETECT_FULLSCREEN )
szerokość, wysokość - żądany rozmiar ekranu
vw, vh - parametry używane do zadania rozmiaru ekranu wirtualnego (tutaj oba zero)
vsync() - funkcja oczekująca na zakończenie wyświetlania aktualnego obrazu na ekranie
rest( msec ) - funkcja czekająca podaną ilość czasu w milisekundach
create_bitmap( szerokość, wysokość ) - tworzy i zwraca bitmapę o określonym rozmiarze
load_bitmap( ścieżka_pliku, paleta ) - wczytuje bitmapę z dysku (formaty BMP i TGA),
jako parametr paleta można podaæ NULL (w trybach 32-bitowego koloru nie korzysta się z
palet)
destroy_bitmap( bitmapa ) - usuwa utworzoną/wczytaną wczeœniej bitmapę
blit( bitmapa_z, bitmapa_do, sx, sy, dx, dy, szerokość, wysokość ) - kopiuje
fragment bitmapy do innej bitmapy, kopiowany jest fragment, który ma lewy górny róg na
bitmapie wyjściowej umieszczony w punkcie (sx,sy), po kopiowaniu ten róg trafia w punkt
(dx,dy) bitmapy docelowej, kopiowany jest fragment o podanej szerokoœci i wysokoœci
bitmapa->w - pozwala odczytać szerokość bitmapy
bitmapa->h - pozwala odczytać wysokość bitmapy
makecol( r, g, b ) - zwraca numer wybranego koloru
r, g, b - wartoœci kanału czerwonego, zielonego i niebieskiego w zakresie 0..255
clear( bitmapa ) - czyści daną bitmapę
clear_to_color( bitmapa, kolor ) - jak wyżej, lecz czyœci na określony kolor
putpixel( bitmapa, x, y, kolor) - zmienia kolor punktu o wspolrzędnych (x,y).
line( bitmapa, x1, y1, x2, y2, kolor ) - rysuje odcinek między punktami
(x1,y1) a (x2,y2).
textout_ex( bitmapa, font, tekst, x, y, kolor, kolor_tła ) - wyświetla tekst, jako
czcionkę (font) można podać czcionkę domyslną (jest w zmiennej globalnej "font"), jeżeli
za kolor_tła podamy -1 tekst wyświetli się z tłem przezroczystym
floodfill( bitmapa, x, y, kolor ) - wypełnia ograniczony obszar danym kolorem, przy
czym (x,y) wskazuje punkt wnetrza obszaru wypełnianego
rectfill( bitmapa, x1, y1, x2, y2, kolor ) - rysuje wypełniony prostokat, którego lewy
górny róg ma wspołrzędne (x1, y1), a prawy dolny (x2-1, y2-1)
circle( bitmapa, x, y, r, kolor ) - kresli okrąg o srodku w punkcie (x, y) i promieniu r
circlefill( bitmapa, x, y, r, kolor ) - jak wyżej, lecz okrąg jest wypełniony
polygon( bitmapa, ilość_wierzchołków, tablica_współrzędnych, kolor ) - rysuje
wypełniony wielokąt, w tablicy współrzędnych powinny znajdować się naprzemian
współrzędne X i Y kolejnych wierzchołków wielokąta
Zgłoś jeśli naruszono regulamin