Zapewne zadziwia was tytuł wpisu. "Jak to, na ekranie nie widać nawet ludzika czy jakiegokolwiek obrazka, a on chce robić GUI??". Jednak nie jest to (aż tak)głupi krok na jaki wygląda, a już wyjaśniam dlaczego.
Zamierzam teraz napisać tylko szkielet, a mianowicie:
- klasę BOX, z której będą dziedziczyć wszystkie elementy interfejsu. Posiada swój własny SDL_Surface. Będzie to zwykły prostokąt z możliwością pokolorowania i wbudowanymi funkcjami odbierającymi eventy (OnMouseDown, OnMouseUp, OnMouseMotion itd.)
- klasę CONTAINER, która będzie przechowywać wskażniki do innych klas GUI, zajmować się przerysowywaniem Surfejsów "dzieci" na siebie i przekazywaniem eventów tam, gdzie trzeba.
- klasę WINDOW, która będzie "pakować" eventy w swoje bebechy (do jedynej klasy-dziecka, najrozsądniej wstawić tu CONTAINERa oczywiście :P) i rysować się na ekran.
Dzięki takiemu rozwiązaniu klasa rysująca świat gry może być klasą GUI, co eliminuje późniejszy problem "hardkodowania" przycisków na ekranie.
Klasy jak BUTTON czy PROGRESS_BAR dopiszę później, jak ludzik będzie mógł eksplorować świat :)
Niestety jestem zajęty przez te 2 dni i nie zrobię tego teraz, więc see ya poniedziałek.
Brak komentarzy:
Prześlij komentarz