05.03.2016

Ogólna organizacja ekranów i okien własnych gry

Pisząc słowo "ekran", w kontekście tego projektu, mam na myśli cały, aktualnie wyświetlany obszar (okno systemowe zainicjowane do trybu graficznego), który jest przeznaczony na tą grę, po jej odpaleniu. Od strony abstrakcyjnej, gra może mieć wiele ekranów, które można dowolnie przełączać. Gra, w starszej wersji, ma zmontowane trzy ekrany: ekran menu (pojawiający się zaraz po odpaleniu gry), ekran związany z samą grą (mapa z graczem), oraz ekran wyświetlany przed pojawieniem się mapy planszy, z informacjami, które chcemy przekazać graczowi przed rozpoczęciem gry. W nowszej wersji zachowam tą samą organizację ekranów.
Od strony interfejsu programistycznego, ekrany to obiekty typu theScreen umiejscowione w głównym, globalnym obiekcie typu theGame - obiekt ten, oprócz tablicy ekranów, posiada też: identyfikator aktualnie wyświetlanego ekranu, wskaźnik do zasobów gry, wskaźnik do aktualnej planszy. Obiekty ekranu zawierają kontenery z oknami własnymi (wskaźniki do obiektów typu theWindow), które są zupełnie inne niż okna systemu operacyjnego. Te obiekty, typu theWindow (zdefiniowanego w pliku "engine2d/screen.h") zawierają niezbędne minimum, czyli: rozmiary i pozycję okna na ekranie, wskaźnik do użytych w nim warstw planów, informacje o przewijaniu zawartości (bo nie zawsze powierzchnia graficzna związana z określonym oknem mieści się w jego rozmiarach), funkcje składowe związane z wyświetlaniem grafiki i tekstu.
Każdy ekran ma swoją własną obsługę zdarzeń urządzenia sterującego, poprzez odwołania do globalnej tablicy funkcji KeyEventsTab zdefiniowanej w "globals.h".
Okna własne określonego ekranu, są podstawą konstrukcji interfejsu graficznego w tym projekcie.

 
Ekran menu


Intro do określonej mapy

Ekran z mapą i graczem

Brak komentarzy:

Prześlij komentarz