Einzelnen Beitrag anzeigen

Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#9

Re: Geschwindigkeit bei bewegten Objekten

  Alt 8. Aug 2006, 14:07
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
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat