ok es kann gar nicht funktionieren mit diesem Time Based Movement :/
Ich habe es so geregelt, dass bei jedem mal, wenn der Ball bewegt wird, seine Flugbahn direkt mit der Gravitation und dem Wind verrechnet wird:
Delphi-Quellcode:
var
Gravitation,Wind:TVektor;
Ball: TBall;
...
...
procedure TForm1.Timer1Timer(Sender: TObject);
...
Ball.vektor.addieren(Gravitation);
Ball.vektor.addieren(wind);
...
//Time Based Movement
time:=gettickcount()-timestamp;
ball.bewegen((5*ball.vektor.gibLaenge/10)*time/1000);
Jetzt ist es natürlich so, dass die Flugbahn anders verläuft, wenn der Vektor des Balles öfters mit den beiden anderen verrechnet wird. Deshalb ist es immer noch so das der Ball bei Timer Intervall 1 anders fliegt als bei Timer Intervall 50
Vielleicht hat ja jemand einen Ansatz wie man das lösen kann. Ich hab schon an sowas gedacht:
Delphi-Quellcode:
if ball.x mod 1 = 0 then begin
Ball.vektor.addieren(Gravitation);
Ball.vektor.addieren(wind);
end;
Also das nur bei jedem vollen Pixel die Flugbahn verändert wird, aber das haut auch nicht hin. Denn bei Timer Intervall 50 können ja auch mehrere Pixel gegangen worden sein, und trotzdem nur eine einzige Flugbahn anpasung vorgenommen worden sein.
Ich hoffe da blickt jetzt noch jemand durch