Thema: Delphi DelphiX Frage für Spiel

Einzelnen Beitrag anzeigen

tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#12

Re: DelphiX Frage für Spiel

  Alt 31. Jul 2005, 10:45
Also die vier Sachen wirst du vermutlich nicht mit einer gemeinsamen Vorfahrklasse abbacken können (höchstens vielleicht Map und Minimap). Frag dich immer, welche deiner Sachen gemeinsame Eigenschaften und Verhaltensweisen haben. Im allgemeinen merkst du das auch spätestens beim Coden: Wenn du den gleichen Code in drei verschiedenen Klassen schreiben musst, spätestens dann solltest du dir mal Gedanken über Vererbung machen...

Wo du schon eher auf einen Nenner kommst sind deine "Objekte" (Bäume etc.). Ich spinntisiere jetzt einfach mal ein bisschen:

Delphi-Quellcode:
type TSpielobjekt = class
     private
       FPosition: TPoint;
     public
       constructor Create; virtual;
       destructor Destroy; virtual;
       property Position: TPoint read FPosition write FPosition;
       ... // Was halt ALLE Spielobjekte sonst noch gemeinsam haben sollen
     end;
     TVegetation = class(TSpielobjekt)
       // Hier alles was speziell Bäume und Pflanzen betrifft. Was weiß ich, ob die gerade blühen oder so halt
     end;
     TBewegliches = class(TSpielobjekt)
     private
     public
       procedure Move(Richtung: TPoint; Staerke: integer); virtual;
     end;

// So und jetzt die Endklassen ableiten:
     TBaum = class(TVegetation)
       // Alles was ganz speziell NUR den Baum betrifft
     end;
     TTier = class(TBewegliches)
       // Alles was ganz speziell NUR die Tiere betrifft, z.B. Raubtier: boolean
     end;
So ist natürlich ein bisschen Overkill so wie es da jetzt steht. Aber hat ja auch keinen Anspruch auf Vollständigkeit. Das lässt sich sehr einfach warten und handhaben und außerdem problemlos erweitern. Zum Beispiel eine von TSpielobjekt abgeleitete Klasse TGebaeude.

Hoffe das hilft.
Christian
  Mit Zitat antworten Zitat