Hallo!
Bewegen tust du die Shapes so
Delphi-Quellcode:
Kreis[Position].Left := Kreis[Position].Left + Speed;
Kreis[Position].Top := Kreis[Position].Top + Speed;
lg
Das macht er ja, aber
nur wenn der Kreis von der Wand abprallt
Aber da gibt es noch einiges im Code was suboptimal ist:
- Globale Variable Kreis -> Private Variable von TForm1
- Statt Form1
in den Methoden Self
benutzen
- Statt for k := 0 to arraylaenge - 1 do
besser for k := low( kreis ) to high( kreis ) do
- Statt if Kreis[k].Top > Self.ClientHeight then
besser if Kreis[k].Top + Kreis[k].Height > Self.ClientHeight then
Zudem wenn der Kreis einen Weg von 20 zurücklegen soll, dieser aber nach 18 schon den Rand trifft, dann lässt du den Kreis von der aktuellen Position 20 in die entgegengesetzte Richtung wandern. Irgendwie nicht so wirklich
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)