Hallo Leute,
Ich habe ein Problem. Ich programmiere ein kleines 2D Spiel. Dabei soll es Gebäude und Einheiten geben.
Dabei habe ich ein paar Klassen erstellt:
TGameObject: Überklasse (beinhaltet Textur, Name und X,Y Position)
in der Datei
RTSUnit
TUnit: Unterklasse von TGameObject (beinhaltet Geschwindigkeit und Ziel, etc.)
in der Datei
RTSUnit
TStructure: Unterklasse von TGameObject (beinhaltet keine weiteren Werte)
in der Datei
RTSStructure
In dem constructor von TStructure steht folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| constructor TStructure.Create(StructureType, AtX, AtY: cardinal); begin inherited Create (AtX, AtY); case StructureType of 0: FTexture := 'powerplant'; end; FImageIndex := FindImageIndex (); end; |
Und in dem Constructor von TGameObject steht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| constructor TGameObject.Create (AtX, AtY: cardinal); begin FXpos := AtX; FYpos := AtY; FMarked := false; end; |
Das eigentlich Problem ist: Delphi meckert weil er FImageIndex und FTexture nicht kennt.
FImageIndex und FTexture sind beides private deklarierte Variablen von TGameObject. Da ich aber ja RTSUnit schon im interface von RTSStructure eingebunden habe müsste es eigentlich keine Probleme geben. Außerdem erkennt Delphi schon, dass TStructure von TGameObject erbt, aber irgendwie erbt er die private deklarierten Variablen nicht oder erkennt sie nicht.
Wie könnte ich das Problem lösen?
Danke im voraus.
P.S. Falls ihr mehr Code braucht um mir zu helfen, siehe Anhang.
Moderiert von
Narses: Code als Anhang hochgeladen.
"Wir können nicht fliehen!" "Wieso nicht?" "Sie haben mir die Schnürsenkel zusammengebunden!" "Die Schweine."