Ich entwickle gerade ein RPG-Spiel mit C++ und bin zu dem Punkt gekommen, Ereignisse auf der Karte einzubauen.
Ich wollte, dass das Ereignis auf der Karte den Spieler heilen kann. Ich dachte, der einfachste Weg, dies zu tun war, um einen Zeiger auf das Ereignis-Objekt aus dem Spiel mit dem Schlüsselwort "this" übergeben. Als ich dies tat, gab es eine ganze Reihe von Compiler-Fehlern, die anscheinend aus dem Versuch resultierten, eine Klasse einzubinden, die gerade versuchte, die andere Klasse einzubinden. (Endlosschleife, nehme ich an?)
Zum Beispiel. Ich habe meine 'game'-Klasse und sie hat ein öffentliches Mitglied, das zur 'mapManager'-Klasse gehört. Das 'mapManager'-Objekt hat dann das 'event'-Objekt als Mitglied. Das "game"-Objekt hat auch ein "player"-Objekt in seinen Mitgliedern. Das 'event'-Objekt muss Variablen ändern, die der 'player' hat. Ich könnte ehrlich gesagt Zeiger werfen, wann immer ich sie brauche, aber das könnte umständlich werden.
Was ich versuche zu fragen, ist, wenn es eine einfache Möglichkeit, ein Kind eines Elternteils Zugriff auf ein anderes Kind dieses Elternteils haben, oder wenn es nur einfacher wäre, Zeiger auf alle Kind-Klassen zu werfen, die Sie auf die anderen Kinder verweisen müssen.
Wow... das machte sehr wenig Sinn, aber hoffentlich kann jemand genug verstehen, um mir eine gute Antwort zu geben. Hier ist etwas Code, falls es hilft.
:game.h
`
include "player.h" include "event.h"
- class game { public: player Player; event Event; };
player.h
class player { public: game* Game;
- };
event.h
class event { public: game* Game; };
`
Nachdem nur diese Ergebnisse in "Spiel nicht einen Typ benennen" und so habe ich versucht, Spiel in event.h und player.h einschließen und erhielt den gleichen Fehler. Was ich tun möchte, ist in der Lage sein, auf die Variable HP des Spielers von innerhalb des Ereignisses zuzugreifen.