unit frmStartseite;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, mSpiel, mSpieler, uToolsFB, mWaffe, uGlobals, mEinheit;
type
TfrmStartGBH =
class(TForm)
btnFeuern: TButton;
procedure btnFeuernClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
end;
var
frmStartGBH: TfrmStartGBH;
implementation
{$R *.dfm}
procedure TfrmStartGBH.btnFeuernClick(Sender: TObject);
var
pSpiel : TSpiel;
pSpieler : TSpieler;
pAktiveEinheit : TEinheit;
slWaffenListe : TStringList;
pWaffe : TWaffe;
koStart, koZiel : TKoordinaten;
iAnzElem : Integer;
begin
// Das Spiel anlegen
pSpiel := TSpiel.Create;
if not Assigned(pSpiel)
then exit;
// Eine Waffenliste erzeugen
slWaffenListe := TStringList.Create;
// Die aktive Einheit (z.B. ein Raumschiff) erfragen
pSpiel.GibSpieler(pSpieler);
pAktiveEinheit := pSpieler.GibAktiveEinheit;
// Die Waffen dieser Einheit erfragen
// Das Result von "GibWaffenListe" ist die Anzahl ihrer Elemente
iAnzElem := pAktiveEinheit.GibWaffenListe(slWaffenListe);
if (
not Assigned(slWaffenListe))
or (iAnzElem = 0)
then begin
// slWaffenliste nicht angelegt oder leer --> Eine Waffe anlegen.
pWaffe := TWaffe.Create('
Test-Waffe', TRUE, 100, 99, 100);
pWaffe.OnWaffeAbfeuernEvent := pSpiel.OnWaffeAbfeuernEvent;
end else begin
// slWaffenliste nicht leer --> Erste Waffe darin benutzen
pWaffe := (slWaffenListe.Objects[0])
as TWaffe;
end;
// Die Koordinaten der schießenden Einheit festlegen
koStart := TKoordinaten.Create(0, 0);
// Die Koordinaten der Ziel-Einheit festlegen
koZiel := TKoordinaten.Create(1, 1);
// 500 Energiepunkte in den Schuss legen und FEUER FREI!!
pWaffe.Feuern(koStart, koZiel, 500);
{*** TfrmStartGBH.btnFeuernClick ***}
end;
end.