unit mKugel;
interface
uses mSuM;
type Kugel =
class
private
zFarbe: ganzeZahl;
zX: Zahl;
zY: Zahl;
zGeschwindigkeit: Zahl;
zRichtung: Zahl;
zGroesse: Zahl;
hatStift: Buntstift;
public
constructor init (pFarbe: ganzeZahl ; pX, pY, pGeschwindigkeit, pRichtung, pGroesse: Zahl);
procedure zeichne;
procedure loesche;
procedure bewege;
procedure setzeRichtung (pRichtung: Zahl);
procedure setzeGroesse (pGroesse: Zahl);
procedure setzeFarbe (pFarbe: ganzeZahl);
procedure setzeGeschwindigkeit (pGeschwindigkeit: Zahl);
function gibX: Zahl;
function gibY: Zahl;
function gibRichtung: Zahl;
destructor gibFrei;
end;
implementation
constructor kugel.init (pFarbe: ganzeZahl ; pX, pY, pGeschwindigkeit, pRichtung, pGroesse: Zahl);
begin
hatStift:= Buntstift.init;
zX:= pX;
zY:= pY;
zFarbe:= pFarbe;
zGroesse:= pGroesse;
zGeschwindigkeit:= pGeschwindigkeit;
zRichtung:= pRichtung;
hatStift.setzeFarbe (zFarbe);
hatStift.hoch;
hatStift.bewegeBis (zX,zY);
hatStift.dreheUm (zRichtung);
hatStift.runter;
hatStift.setzeFuellmuster (gefuellt);
end;
procedure kugel.zeichne;
begin
hatStift.zeichneKreis (zGroesse);
end;
procedure kugel.loesche;
begin
hatStift.radiere;
self.zeichne;
hatStift.normal;
end;
procedure kugel.bewege;
begin
self.loesche;
hatStift.hoch;
hatStift.bewegeUm (zGeschwindigkeit);
hatStift.runter;
if (hatStift.hPosition <= 85)
or (hatStift.hPosition >= 795)
then self.setzeRichtung (180-zRichtung);
if (hatStift.vPosition <= 85)
or (hatStift.vPosition >= 795)
then self.setzeRichtung (360-zRichtung);
self.Zeichne;
end;
procedure Kugel.setzeRichtung(pRichtung: Zahl);
begin
hatStift.dreheBis (pRichtung);
zRichtung:= pRichtung;
end;
procedure Kugel.setzeGroesse(pGroesse: Zahl);
begin
zGroesse:= pGroesse;
end;
procedure Kugel.setzeFarbe(pFarbe: ganzeZahl);
begin
zFarbe:= pFarbe;
end;
procedure Kugel.setzeGeschwindigkeit(pGeschwindigkeit: Zahl);
begin
zGeschwindigkeit:= pGeschwindigkeit;
end;
function kugel.gibX;
begin
result:= hatStift.hPosition;
end;
function kugel.gibY;
begin
result:= hatStift.vPosition;
end;
function kugel.gibRichtung;
begin
result := hatStift.Winkel;
end;
destructor Kugel.gibFrei;
begin
self.loesche;
hatStift.gibFrei;
end;
end.