Ich arbeite an einem 2D-Spiel, in dem Sie sich nach oben, unten, links und rechts bewegen können. Ich habe im Wesentlichen zwei Spiellogikobjekte:
- Spieler: Hat eine Position relativ zur Welt
- Welt: Zeichnet die Karte und den Spieler
Bisher hängt die Welt vom Spieler ab (dh sie hat einen Verweis darauf), und ihre Position muss ermittelt werden, wo der Spielercharakter gezeichnet werden soll und welcher Teil der Karte gezeichnet werden soll.
Jetzt möchte ich die Kollisionserkennung hinzufügen, damit sich der Spieler nicht durch Wände bewegen kann.
Der einfachste Weg, den ich mir vorstellen kann, ist, den Spieler die Welt fragen zu lassen, ob die beabsichtigte Bewegung möglich ist. Aber das würde eine zirkuläre Abhängigkeit zwischen Spieler und Welt hervorrufen (dh jeder hat einen Bezug zum anderen), die es wert ist, vermieden zu werden. Der einzige Weg, den ich mir ausgedacht habe, ist, die Welt den Spieler bewegen zu lassen , aber ich finde das etwas unintuitiv.
Was ist meine beste Option? Oder lohnt es sich nicht, eine zirkuläre Abhängigkeit zu vermeiden?