So!
Endlich ist es wieder so weit. Einen neue Version wurde fertiggestellt und hochgeladen.
Wenn ihr diese testet, werdet ihr euch sicherlich fragen:
--> "Was hat sich denn verändert, außer dieser einfachen Punkteanzeige?"
Die Antwort:
--> "Alles"!
Der gesamte Code des eigentlichen Spiels wurde von der Formularunit abgetrennt und das Spiel selbst existiert jetzt als eigene Klasse. Des weiteren ist aus dieser Klasse der gesamte Code, der sich bei unterschiedlichen GameModes ändern könnte in eine Klasse von TGame Mode verlagert.
Hier ein Beispiel:
Delphi-Quellcode:
TGameMode = class
Owner: TGameEngine;
public
constructor Create(AOwner : TGameEngine);
procedure PreMove ; virtual;
procedure AfterMove ; virtual;
procedure AfterDraw ; virtual;
procedure PlayerMove(APlayer: TPlayer ); virtual;
procedure Bot (APlayer: TPlayer ); virtual;
procedure LoadLevel (Options: TGameOptions ); virtual;
procedure OnKill(KilledPlayer, KillingPlayer : TPlayer); virtual;
procedure WinCondition; virtual;
end;
TTeamGame = class (TGameMode)
public
TeamPoints : Array[0..3] of Integer;
procedure OnKill(KilledPlayer, KillingPlayer : TPlayer); override;
end;
TCTFGame = class (TTeamGame)
public
CTFFlags : Array[0..3] of TCTFFlag;
CTFFlagBases : Array[0..3] of TCTFFlagBase;
procedure PreMove ; override;
procedure AfterMove ; override;
procedure AfterDraw ; override;
procedure PlayerMove(APlayer: TPlayer ); override;
procedure Bot (APlayer: TPlayer ); override;
procedure LoadLevel (Options: TGameOptions ); override;
end;
Das soll (so hoffe ich es) es später JEDEM ermöglichen, einen eigenen GameMode zu schreiben.
Warum ist das Thema sonst im Bereich OpenSource?^^
PS: Der Download ist wie immer im ersten Post zu finden.
MFG