Zanim zaczniemy naukę warto zobaczyć jak wygląda nasz pierwszy program napisany w Allegro 5.
// deklarowanie plików nagłówkowych, głównego modułu allegro, oraz obsługi obrazów.
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
int main()
{
al_init(); // inicjowanie biblioteki allegro
al_install_keyboard(); // instalowanie sterownika klawiatury
al_init_image_addon();// inicjowanie dodatku umożliwiającego odczyt jak i zapis obrazów, w formatach BMP, PNG, JPG, PCX, TGA.
ALLEGRO_KEYBOARD_STATE klawiatura; // utworzenie struktury do odczytu stanu klawiatury
ALLEGRO_DISPLAY *okno = al_create_display( 320, 240);// tworzymy wskaźnik okna, i podajemy jego szer. i wys
al_set_window_title( okno,"Allegro5 kurs pierwsze okno");// podajemy tytuł okna
ALLEGRO_BITMAP *obrazek = al_load_bitmap("widok.png");// wczytujemy bitmapę do pamięci
while(!al_key_down(&klawiatura, ALLEGRO_KEY_ESCAPE)) //koniec programu gdy wciśniemy klawisz Escape
{
al_get_keyboard_state(&klawiatura); // odczyt stanu klawiatury
al_clear_to_color(al_map_rgb( 0, 255, 0)); // wyczyszczenie aktualnego bufora ekranu
al_draw_bitmap (obrazek,0,0,0); // wyświetlenie bitmapy "obrazek" na "Backbuffer" (bufor ekranu)
al_flip_display(); // wyświetlenie aktualnego bufora na ekran
}
// usuwanie z pamięci okna, bitmap, audio, fontów ...itd.
al_destroy_display(okno);
// usuwanie z pamięci okna, bitmap, audio, fontów ...itd.
al_destroy_display(okno);
al_destroy_bitmap(obrazek);
return 0;
}
Celem powyższego kodu jest pokazanie prostoty i logiki Allegro5.
Nazwy init, install_keyboard, image_addon, KEYBOARD_STATE, DISPLAY, window_title, BITMAP, key_down,
już sama nazwa wskazuje do czego służy dana funkcja.
Jak widać kod nie jest specjalnie trudny.
Otrzymamy takie oto małe okienko, z
obrazkiem jako tło.Nazwy init, install_keyboard, image_addon, KEYBOARD_STATE, DISPLAY, window_title, BITMAP, key_down,
już sama nazwa wskazuje do czego służy dana funkcja.
Jak widać kod nie jest specjalnie trudny.
6 komentarzy:
Po przekopiowaniu programu pojawia mi się błąd:
Error C3861 'al_init_image_addon': identifier not found
jakieś pomysły skąd to się bierze?
Jeżeli używasz Code::Blocks musisz wejść w
Project>Build Options>
A następnie dodać do ustawień linkera wszystkie biblioteki
Allegro, których aktualnie używasz (A używasz:
-liballegro-5.0.10-mt.a
-liballegro_image-5.0.10-mt.a).
wyskakuje mi taki błąd.
MacBook-Air-ukasz:~ lukasz$ /Applications/CodeBlocks.app/Contents/MacOS/cb_console_runner DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:.:/Users/lukasz/Downloads/allegro-5.0.0rc4/build/lib /Users/lukasz/Desktop/test_allegro/allegro5/bin/Debug/allegro5
dyld: Symbol not found: __al_mangled_main
Referenced from: /Users/lukasz/Downloads/allegro-5.0.0rc4/build/lib/liballegro_main.5.0.dylib
Expected in: flat namespace
in /Users/lukasz/Downloads/allegro-5.0.0rc4/build/lib/liballegro_main.5.0.dylib
jakis pomysł co to oznacza?
Trying A5 on MacOS without Xcode
a
u mnie program dziala, ale dopiero po zamienieniu while na do while. dlaczego?
Prześlij komentarz