Thema: Delphi Jojo

Einzelnen Beitrag anzeigen

Sierra

Registriert seit: 3. Sep 2005
99 Beiträge
 
#1

Jojo

  Alt 17. Okt 2005, 14:52
Hi!
Ich probiere gerade ein Jojo zu programmieren.
Der Code und das Objekt sehen so aus.

Delphi-Quellcode:
program pJojo;

uses
  mSuM,
  mJojo in 'mJojo.pas';

var hatBildschirm: Bildschirm;
    hatMaus: Maus;
    hatJojo1,
    hatJojo2,
    hatJojo3: Jojo;

begin
hatBildschirm:=Bildschirm.init;
hatMaus:=Maus.init;
hatJojo1:=Jojo.init(100,300);
hatJojo2:=Jojo.init(200,200);
hatJojo3:=Jojo.init(300,250);

repeat
hatjojo1.zeichne;
hatjojo2.zeichne;
hatjojo3.zeichne;
hatjojo1.loesche;
hatjojo2.loesche;
hatjojo3.loesche;
hatjojo1.bewege;
hatjojo2.bewege;
hatjojo3.bewege;

until hatMaus.doppelklick;

hatJojo1.gibFrei;
hatJojo2.gibFrei;
hatJojo3.gibFrei;
hatMaus.gibFrei;
hatBildschirm.gibFrei;
end.
Und die Klasse Jojo

Delphi-Quellcode:
unit mJojo;

interface
uses mSuM;

type
Jojo = class
        zXPos,zYPos: integer;
        zRadius, zLaenge: integer;
        zFaden,zDy:real;
        hatStift: Buntstift;
        constructor init(pXPos,pLaenge:integer);
        procedure zeichne;
        procedure loesche;
        procedure bewege;
        destructor gibFrei;
        end;

implementation

constructor Jojo.init(pXPos,pLaenge:integer);
begin
zXPos:=pXPos; zYPos:=0; zLaenge:=pLaenge; zRadius:=20;
hatStift:=Buntstift.init;
hatStift.setzeFuellMuster(GEFUELLT);
hatStift.setzeLinienBreite(2);
hatStift.dreheBis(-90);
zFaden:=zRadius;
zDy:=1;
hatStift.bewegeBis(zXPos,zYPos);
hatStift.runter;
end;

procedure Jojo.zeichne;
begin
hatStift.bewegeBis(zXPos,zYPos);
hatStift.bewegeUm(zFaden);
hatStift.zeichneKreis(zRadius);
end;

procedure Jojo.loesche;
begin
hatStift.radiere;
hatStift.bewegeBis(zXPos,zYPos);
hatStift.bewegeUm(zFaden);
hatStift.zeichneKreis(zRadius);
hatStift.normal;
end;

procedure Jojo.bewege;
begin
hatStift.bewegeUm(zDy);
zFaden:=hatStift.vPosition;
end;


destructor Jojo.gibFrei;
begin
hatStift.gibFrei;
end;

end.
Jetzt würde ich gerne wissen, wie ich es schaffe, dass das Jojo anhält und es wieder zurückläuft.
Außerdem würde ich gerne wissen, was der Befehl "vPosition" macht.

Danke.
  Mit Zitat antworten Zitat