Das ist mein Code:
Delphi-Quellcode:
var
Form1: TForm1;
Richtung, RWeite: integer;
Delphi-Quellcode:
procedure TForm1.tmrBall2Timer(Sender: TObject);
begin
Randomize;
if Richtung = 0 then
begin
Richtung := Random(1);
RWeite := Random(5);
end;
Ball.Top := Ball.Top - 10;
if Richtung = 0 then
Ball.Left := Ball.Left - Rweite
else
Ball.Left := Ball.Left + Rweite;
end;
Wenn Richtung noch kein Wert zugewiesen wurde soll er den Variablen Richtung und RWeite Werte zuweisen. Wenn Richtung nicht 0 ist, also einen Wert hat, soll die if-Anweisung übersprungen werden und nur die Bewegung durchgeführt werden. Richtung und RWeite werden aber logischerweise nach einmaligem auführen gelöscht und der Ball fliegt eine Kurve, weil ihm dauernd neue Flugdaten gegeben werden.