synchronisation der Geschwindigkeit in einem Spiel



  • Hallo zusammen,

    ich stehe gerade vor dem Problem, dass ich diverse Bewegungen wie z.B. eine Rotation synchronisieren muss. So dass diese Bewegung auch halbwegs synchron auf unterschiedlichen PC Systemen abläuft.
    Dazu ermittel ich mit einem Performance Counter die Frequence, den aktuellen und den Vorgänger des Frames. Dann berechne ich mir ein Delta, welches ich auf meine Rotation addiere.

    Delta = Frame - Vorgänger Frame / Frequence

    rotx += Delta + 1; //Delta wird bei jedem Rendervorgang neu berechnet
    

    Eigentlich erwarte ich als Ergebnis, dass auf schnellen Rechnern die Bewegung flüssig abläuft und auf langsamen Rechnern ruckelt, aber die Objekte an der Richtigen stelle im 3D Raum sind.

    Kann mir jemand einen Tipp geben?

    Schöne Grüße

    Fireball



  • Du musst den Wert, um den sich ein Objekt pro Sekunde drehen oder bewegen soll, mit der im letzten Frame vergangenen Zeit multiplizieren. Dann erhaelst du das, was du erwartest.


  • Mod

    das wurde hier schon oefter besprochen, vielleicht findest du eine loesung im vorherigen thread dazu: http://www.c-plusplus.net/forum/viewtopic-var-t-is-222108-and-highlight-is-logictick.html


Anmelden zum Antworten