unit mPulsierkugel;

interface

uses mSuM, mKugel;

type Pulsierkugel = class(Kugel)
       zWachsend:  Wahrheitswert; // neuer Typ: Wahrheitswert
       constructor init(pAnfangH, pAnfangV: GanzeZahl; pGeschwindigkeit: Zahl; pRichtung: Zahl); override;
       procedure   zeichne; override;
       procedure   loesche; override;
     end;

implementation

constructor Pulsierkugel.init(pAnfangH, pAnfangV: GanzeZahl; pGeschwindigkeit: Zahl; pRichtung: Zahl);
begin
  zWachsend := Wahr;
  inherited init(pAnfangH, pAnfangV, pGeschwindigkeit, pRichtung);
end;

procedure Pulsierkugel.zeichne;
begin
  if zWachsend then
  begin
    zRadius := zRadius + 0.02;
    if zRadius >= 15 then zWachsend:=Falsch;
  end
  else begin
    zRadius := zRadius - 0.02;
    if zRadius <= 5 then zWachsend:=Wahr
  end;
  inherited zeichne;
end;

procedure Pulsierkugel.loesche;
begin
  hatStift.radiere;
  inherited zeichne; // bei self.zeichne würde die Größe verändert!
  hatStift.normal;
end;

end.