Lekcja 1 - Pierwsza kompilacja

W tym jednym z krótszych lekcji pokaże jak powinien wyglądać kod niezbędny do uruchominia okna naszej aplikacji czy też gry :).




ALLEGRO 5 / LEKCJA 1: Pierwsza kompilacja

Wyjaśnienie kodu

#include < allegro5/allegro.h>
#include < allegro5/allegro_native_dialog.h>

Domyślam się że wiecie do czego służą te linijki kodu ale ptzypomne. Służą one do wprowadzenia bibliotek do kompilatora inaczej zainicjalizowania ich bez nich niezrobimy kompletnie NIC. Oczywiście tych bibliotek jest kilka i nie zawsze będą naw wystarczać tylko te dwie.

ALLEGRO_DISPLAY * display ;

Ten kawałek kodu odpowiada za przypisanie do zmiennej 'display' pewnego rodzaju funkcji.

int (! al_init ())
    {
     ... ... ...
    }

Ten oto właśnie if inicjalizuje nam biblioteke allegro. Można to zrobić w dużo szybszy sposób poprzez zamienienie tego całego if-a na:

al_init ();

display = al_create_display ( 800 , 600 );

Z kolei ten kawałek kodu tworzy okno o wymiarach (800 na 600) pikseli. Stworzone okno przypisujemy do zmiennej 'display'.

if (! display ){
    al_show_native_message_box ( display , "Error #1" , "Błąd wyświetlenia okna aplikacji"     , NULL , NULL , ALLEGRO_MESSAGEBOX_WARN | ALLEGRO_MESSAGEBOX_
    OK_CANCEL );
    return -1 ;
    }
al_show_native_message_box

Jest to jedna z funkcji allegro która pokazuje nam małe okienko gdy "if(!display)" if spełni warunek.

display

Pierwszym warunkiem jest 'display' czyli że ma to być okno. Nie mylcie tego parametru funkcji z nasza ZMIENNĄ 'display' która tworzy inne okno. Spójrzcie na warunek 'if'. Gdyby ten parametr otrzymywał ZMIENNĄ 'display' wtedy ten warunek byłby kompletnie sprzeczny. Bo jak może funkcja otrzymać zmienną którą zaprzeczył w warunku 'if'.

"Error #1

Jest to tytuł naszego okna

"Błąd wyświetlenia okna aplikacji"

Jest to nagłówek okna ale możemy juz w nim napisać cały tekst

NULL

Pierwszy null który widzimy w tej funcki to miejsce na tekst. Ja cały tekst wpisałem w nagłówku. Można oczywiście także wpisać nagłówek jak i tekst lub tylko tekst bez nagłówka.

NULL

Drugi null w tej funkcji odpowiada za wygląd przycisków np. 'ok' 'cancel' 'anuluj'.Narazie nie będziemy poznawać jak wykonąć przyciski o innych stylach

ALLEGRO_MESSAGEBOX_WARN

Jest to rodzaj ikony która wyświetla się w oknie. Dla 'WARN' będzie to '!' na żółtym tle w trójkątnej obudownie. Są jeszcze inne ikony takie jak

ALLEGRO_MESSAGEBOX_QUESTION

Ikona: znak zapytania na niebieskim tle w okrągłej obudowie

ALLEGRO_MESSAGEBOX_ERROR

Ikona: znak 'X' na czerwonym tle w okrągłej obudowie

ALLEGRO_MESSAGEBOX_OK_CANCEL

Jest to wybór jakie przyciski mają się pojawić w oknie. W tym przypadku będą to 'OK' i 'ANULUJ'.

ALLEGRO_MESSAGEBOX_YES_NO

Tu pojawiają się przyciski 'TAK' i 'NIE'.

Jak pewnie zauważyliście w funkcji parametry 'ALLEGRO_MESSAGEBOX_WARN' i parametr '...OK_CANCEL' są oddzielone '|'. Jest możliwość że można użyć tylko jednego parametru 'WARN, QUESTION, ERROR, YES_NO, OK_CANCEL' obojętnie jeden z nich. Domyślny parametr ikony to znak 'i' na niebieskim tle w okrągłej obudowie. Jest on domyślny czyli wtedy gdy podamy '...YES_NO' lub '...OK_CANCEL'. Domyślnym przyciskiem jest sam przycisk 'OK'.

Jest fajna opjca że jeśli wpiszemy tam 'NULL' zamiast parametrów które podałem wyżej otrzymamy okno z okona 'i' czyli informacyja z przyciskiem 'OK' czasem może się bardziej przydać niż wpisanie tam parametrów

Ten kawałek kodu nie jest nam tak naprawde potrzebny. Służy on do poinformowania użytkownika wyskakującym okienkiem o tym iż coś poszło nie tak z przypisaniem do zmiennej 'display' która nie ma w sobie stworzonego okna aplikacji.

al_rest ( 2.0 );

Polecenie to powoduje że program zatrzyma się na określoną w nawiasie ilośc sekund. W tym przypadku będą to dwie sekundy '(2.0)'.

al_destroy_display ( display );

Wiersz ten niszczy okno o nazwie 'display'. Tłumacząc inaczej czyści zmienną 'display' uwalnia ją z pamięci ram.

UWAGA!

uważajncie na linijki kodu które są zawijane do następnych linijek. Jeśli na końcu wiersza nie stoi żaden przecinek lub tym podobny znak to znaczy że wiersz jest zawinięty i jego dalsza część znajduje się w następnej lini kodu