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.