Hejże hej. Mam pewien problem. Jestem w trakcie dzielenia mojego kodu (nie wszystko w jednej klasie) i oczywiście natrafiłem na problem, który postawił mnie pod ścianą. Chciałem zrobić maszynę stanów (abstrakcyjna klasa StateManager + klasy dziedziczące StateMenu, StateGame itd.). Zależnie od tego na co wskazuje obiekt klasy StateManager, miało się rysować menu lub gra. Problem w tym, że w momencie rysowania menu, moja aplikacja się 'wysypuje'. Domyślam się, że pewnie źle przekazuje okno mojej aplikacji, ale nie mam już pomysłów co jest nie tak. Wcześniej zrobiłem to w klasie Engine (zawiera główną pętle, okno itp.), i za pomocą IF'a kontrolowałem co ma być rysowane i normalnie działało, a gdy chce to przenieść do mojej "maszyny stanów" to nie działa.
Oto kod:
statemanager.hpp http://codepad.org/EyrYroFe
statemenu.hpp http://codepad.org/mzCphvaO
statemenu.cpp http://codepad.org/JwKQ4eut
engine.hpp http://codepad.org/gthM1vQg
engine.cpp http://codepad.org/U3TZJC64
text.hpp http://codepad.org/th3O5bmZ (tworzy tekst)
main.cpp
#include "Engine.hpp"
int main()
{
Engine *TicTacToe = new Engine;
TicTacToe->RunEngine();
delete TicTacToe;
return 0;
}
I jeszcze mam pytanie. Jak mógłbym zrobić wspólne okno dla wszystkich klas? Przesyłanie okna przez funkcje za każdym razem jest według mnie bezsensowne, szkoda pamięci. Na dodatek trzeba robić osobną funkcję jak zrobiłem wyżej, do przesłania okna żeby utworzyć moje napisu do menu.. Próbowałem użyć static, ale mi nie wychodziło. Utworzyłem też osobny plik zmienne.hpp, w którym zadeklarowałem moje okno, ale to też nie działa. Już nie mam pomysłów..