Delphi-Quellcode:
//Spieler und Monster
TphItem = class(TObject)
private
FName: String;
FSize: Integer;
FPosition: TPoint;
procedure GetName(const Value: String);
procedure GetSize(const Value: Integer);
procedure GetPosition(const Value: TPoint);
public
constructor Create();
destructor Destroy();
property Name: String read FName write GetName;
property Size: Integer read FSize write GetSize;
property Position: TPoint read FPosition write GetPosition;
end;
//Spielfigur
TphPlayer = class(TphItem)
private
public
constructor Create();
destructor Destroy();
end;
//Gegner (Monster)
TphMonster = class(TphItem)
private
public
procedure Draw(ACanvas: TCanvas);
constructor Create();
destructor Destroy();
end;
Der Konstruktor deiner Oberklasse also TphItem würde ich so anpassen, falls es noch nicht ist:
Delphi-Quellcode:
constructor TphItem.Create(posx, posy) ;
begin
... // andere Felder initialisieren, ggf. in der Paramterliste erweitern
FPosition.Position.X := posx;
FPosition.Position.Y := posy; // eventuell anpassen wegen TPoint, properties nicht im Kopf ;)
end;
Und dann im Create des Monsters dies machen:
Delphi-Quellcode:
constructor TphMonster.Create;
begin
randomize; // ---> auslagern , nur einmal nötig
inherited Create(random(128), random(128));
end;
Zuhause also heute abend kann ich das besser überprüfen