Thema: Delphi Ball am Tisch

Einzelnen Beitrag anzeigen

Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#29

Re: Ball am Tisch

  Alt 8. Feb 2009, 15:19
um das mal ganz einfach (ohne sonderfälle zu berücksichtigen) in code zu fassen (muss natürlich noch optimiert werden):

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    dx,dy:integer;
    v:double;
    ps,pz:TPoint;
begin
  ps:=Point(10,10); //ball soll von da
  pz:=Point(100,200); //nach da
  //den weg als linie vorzeichnen
  canvas.moveto(ps.x,ps.y);
  canvas.lineto(pz.x,pz.y);
  shape1.SetBounds(ps.x,ps.y,10,10);//die startposition und größe des Shapes setzen
  sleep(1000);//einfach mal warten, um den startpunkt in ruhe zu betrachten
  //deltas berechnen
  dx:=pz.x-ps.x;
  dy:=pz.y-ps.y;
  if dx>dy then
  begin
    v:=dy/dx; //verhältnis berechnen
    for i:=1 to dx do
    begin
      //neu positionieren
      shape1.left:=ps.x+i;
      shape1.Top:=ps.y+trunc(i*v);
      application.ProcessMessages;
      sleep(20); //damit die bewegung bisschen langsamer wird...
    end;
  end else
  begin
    v:=dx/dy; //verhältnis berechnen
    for i:=0 to dy do
    begin
      //neu positionieren
      shape1.top:=ps.y+i;
      shape1.Left:=ps.x+trunc(i*v);
      application.ProcessMessages;
      sleep(20); //damit die bewegung bisschen langsamer wird...
    end;
  end;
end;
HTH Frank
  Mit Zitat antworten Zitat