Ok konnte das Problem jetzt eingrenzen:
Delphi-Quellcode:
procedure TBrick.onCollision(Edge : Integer; Ball : TBall);
begin
if Ball.YSpeed = -1 then
begin
Ball.YSpeed := Ball.YSpeed * (-1);
end;
end;
ergibt das Ball.YSpeed = 1 ist.
Delphi-Quellcode:
if Ball.YSpeed = -1 then
begin
Ball.YSpeed := Ball.YSpeed + 2;
end;
ergibt das Ball.YSpeed = 1 ist.
Delphi-Quellcode:
procedure TBrick.onCollision(Edge : Integer; Ball : TBall);
begin
if Edge = 1 then
begin
Ball.YSpeed := Ball.YSpeed * (-1);
end;
end;
ergibt das Ball.YSpeed = -1 bleibt
Delphi-Quellcode:
procedure TBrick.onCollision(Edge : Integer; Ball : TBall);
begin
if Edge = 1 then
begin
Ball.YSpeed := Ball.YSpeed + 2;
end;
end;
ergibt das Ball.YSpeed = 3 ist. Anscheinend wird onCollision 2mal hintereinander aufgerufen. Warum das so ist muss ich aber noch herausfinden