Sto lavorando a un gioco 2D in cui puoi spostarti su, giù, a sinistra ea destra. Ho essenzialmente due oggetti logici di gioco:
- Giocatore: ha una posizione rispetto al mondo
- Mondo: disegna la mappa e il giocatore
Finora, World dipende dal giocatore (cioè ha un riferimento ad esso), che ha bisogno della sua posizione per capire dove disegnare il personaggio del giocatore e quale parte della mappa disegnare.
Ora voglio aggiungere il rilevamento delle collisioni per rendere impossibile per il giocatore muoversi attraverso i muri.
Il modo più semplice a cui riesco a pensare è di chiedere al giocatore di chiedere al mondo se il movimento previsto è possibile. Ma ciò introdurrebbe una dipendenza circolare tra Player e World (ovvero ognuno contiene un riferimento all'altro), che sembra degno di essere evitato. L'unico modo in cui mi è venuto in mente è di far muovere il Giocatore dal Mondo , ma lo trovo in qualche modo poco intuitivo.
Qual è la mia migliore opzione? Oppure non vale la pena evitare una dipendenza circolare?