Einzelnen Beitrag anzeigen

Andy1988

Registriert seit: 20. Dez 2006
Ort: Langen (Hessen)
7 Beiträge
 
#3

Re: Ball bewegen mit Timer(Ball=Canvas darstellung)

  Alt 20. Dez 2006, 19:59
Zitat von Cöster:
Zitat von Andy1988:
wie kann ich das so programmiere, das wenn er den rand von der Form berührt die richtung wechselt und das gleiche bei den schlägern?
Die X- und Y-Geschwindigkeiten auch als Variable speichern und bei Richtungsänderung die entsprechende Geschwindigkeit mit -1 multiplizieren.
Hat leider net geklappt, er geht in die untere rechte ecke und bewegt sich ein schritt nach oben und ein schritt nach unten(wo ich ihn nicht mehr sehen.


Ich habe es so gemacht mit den speichern:
x2,y2,x3,y3: Integer; Das sind die Variablen, dann habe ich ihm werte zugewiesen, da es ja auch gleichzeitig ne ellipse ist:
Delphi-Quellcode:
x2 := 250;
y2 := 260;
x3 := 270;
y3 := 280;
Timer1.Enabled := True;
Das steht bei mir unter FormCreate.
und dannach kommt halt die Procedur die ich gepostet habe und jetzt verändert habe:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  x2 := x2 + 10;
  y2 := y2 + 10;
  x3 := x3 + 10;
  y3 := y3 + 10;

  // wenn oben oder unten angekommen soll er Richtung wechseln
  if (y2 <= 0) or (y2 >= Form1.ClientHeight)
  or (y3 <= 0) or (y3 >= Form1.ClientHeight) then
  begin
    y2 := -y2;
    y3 := -y3;
  end;

  //wenn rechts oder links angekommen soll er Richtung Richtung wechseln
  if (x2 <= 0) or (x2 >= Form1.ClientWidth)
  or (x3 <= 0) or (x3 >= Form1.ClientWidth) then
  begin
    x2 := -x2;
    x3 := -x3;
  end;
end;
Ich hoffe das die Infos einigermaßen reichen.


Mfg

Andy1988
Lebe so wie du willst und programmiere so wie du willst, aber du trägst die Verantwortung.
  Mit Zitat antworten Zitat