hm... das kann man auch "eleganter" lösen...
TImages sind da ziemlich ungeeignet, ich würde direkt auf das Canvas zeichnen.
Was mir grade auffällt:
Delphi-Quellcode:
if (ball.top < 0) or (ball.Top > 520) then y:=-y;
if (ball.left < 0) or (ball.left > 711) then x:=-x;
Was soll dieser Code machen? Was sind die Zahlen (520 und 711)?
Ich gehe mal davon aus, dass er verhindern soll, dass der Ball aus dem Spielfeld rollt.
Was er aber tut ist irgendwelche Variablen x und y, die Wohl den x- und y-Wert des Balls beschreiben, zu negieren. Anstatt den Ball abprallen zu lassen wird er um 2*Abs(x) bewegt. Geändert werden soll aber nur seine Richtung! Da ist mit deinem Konzept was faul.
Selbiges gilt für
Delphi-Quellcode:
if (ballposx >= hindernis.left) and (ballposx <= hindernis.left+hindernis.width)
then begin
x:=-x;
y:=-y;
showmessage('x');
end;
und
Delphi-Quellcode:
if (ballposy >= hindernis.top) and (ballposy <= hindernis.top+hindernis.height)
then begin
x:=-x;
y:=-y;
showmessage('y');
end;
Immer das gleiche:
sorry, aber das ist quatsch.
Real Programmers always confuse Christmas and Halloween because Oct31 = Dec25. - Andrew Rutherford