Ein Bild in Parabelform bewegen (Lazarus)?

...komplette Frage anzeigen

1 Antwort

Hi,

für die Animation brauchst du eine Schleife, in welcher du die Koordinaten des Bildes veränderst. Als Funktion könntest du einen Sinus verwenden.

Ich habe das Mal ausprobiert. In meinem Beispiel ist PnSky ein Panel und darauf ist ein Panel PnSun.

procedure TfrmMain.BtStartClick(Sender: TObject);
var
x, y, i, w, h : Integer;
b : Extended;
begin
w := PnSky.Width - PnSun.Width -1;
h := PnSky.Height;

for x := 0 to w
do begin
//sin(0..PI) > (0..1)

//Breite auf PI normieren
b := x * PI / w;
//Höhe berechnen
y := h - Round(Sin(b) * h);

//Ergebnis zuweisen
PnSun.Left := X;
PnSun.Top := Y;

//bisschen warten
for i := 0 to 10
do begin
Application.ProcessMessages;
sleep(1);
end;//for
end;//for
end;

hoffe das hilft,

viel Erfolg, gruss dj

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von HebleBoy
07.11.2016, 14:29

Danke,

ich habe aber herausgefunden, dass man es mit

(Bild).Left:=(Bild.Left+1;

Bild.Top:= round a+(sqr(Bild.Left-d))+e)

Und dann für a d e Werte festlegen

0

Was möchtest Du wissen?