Pracuję nad grą 2D, w której możesz poruszać się w górę, w dół, w lewo i w prawo. Mam zasadniczo dwa obiekty logiki gry:
- Gracz: ma pozycję względem świata
- Świat: Rysuje mapę i gracza
Jak dotąd świat zależy od gracza (tzn. Ma odniesienie do niego), potrzebuje swojej pozycji, aby dowiedzieć się, gdzie narysować postać gracza i jaką część mapy narysować.
Teraz chcę dodać wykrywanie kolizji, aby uniemożliwić graczowi poruszanie się przez ściany.
Najprostszym sposobem, jaki mogę wymyślić, jest poproszenie gracza o spytanie świata, czy zamierzony ruch jest możliwy. Wprowadziłoby to jednak cykliczną zależność między Graczem a Światem (tzn. Każda zawiera odniesienie do drugiej), co wydaje się warte uniknięcia. Jedynym sposobem, w jaki wpadłem na pomysł, jest to, żeby Świat poruszył Graczem , ale wydaje mi się to nieco nieintuicyjne.
Jaka jest moja najlepsza opcja? A może unikanie cyklicznej zależności nie jest tego warte?