Czy źle jest mieć 2 klasy, które się potrzebują?
To trochę Zapach Kodowy , ale można z tym wyjść. Jeśli jest to łatwiejszy i szybszy sposób na uruchomienie gry, wybierz ją. Ale pamiętaj o tym, ponieważ istnieje duża szansa, że w pewnym momencie będziesz musiał to zmienić.
C ++ polega na tym, że zależności cykliczne nie będą się tak łatwo kompilować , więc lepszym pomysłem może się ich pozbyć zamiast spędzać czas na naprawianiu kompilacji.
Zobacz to pytanie na SO, aby uzyskać więcej opinii.
Czy nazwałbyś [mój projekt] złym projektem?
Nie, to wciąż lepsze niż umieszczanie wszystkiego w jednej klasie.
Nie jest tak świetny, ale w rzeczywistości jest bardzo zbliżony do większości wdrożeń, jakie widziałem. Zwykle masz klasę menedżera stanów gry ( strzeż się! ) I klasę renderera i dość często są to singletony. Tak więc zależność cykliczna jest „ukryta”, ale potencjalnie istnieje.
Ponadto, jak powiedziano w komentarzach, to trochę dziwne, że klasy stanu gry wykonują jakiś rendering. Powinny one po prostu przechowywać informacje o stanie, a rendering powinien być obsługiwany przez renderer lub jakiś element graficzny samych obiektów gry.
Teraz może być ostateczny projekt. Jestem ciekawy, czy inne odpowiedzi przynoszą jeden fajny pomysł. Mimo to prawdopodobnie jesteś w stanie znaleźć najlepszy projekt dla Twojej gry.