Game Loop scheitert..

raptus93

Mitglied
Hallo!

Also ich arbeite mit der JME3 an einer kleinen Gameloop.
Die simpleUpdate() Methode bekomme ich darin direkt mitgeliefert, ich kriege per Parameter sogar die Dauer per Frame, also in meinen Augen top-Situation.

Jetzt kriege ich es nur aufs brechen nicht hin, eine gleichmäßige Bewegung zu simulieren!
Die interessanten Eingabe-Parameter sind xStart, yStart, und xLandung, yLandung und Flughoehe, diese halte ich momentan einfach im Datenfeld.

So sieht mein Ansatz aus, und ich befürchte es liegt ein fundamentaler Fehler in meiner Logik/ Mathematik vor:

Java:
 @Override
    public void simpleUpdate(float tpf) {
        
        //Vektoren aktualisieren
        aktuellePosition.set(geom.getLocalTranslation());
        zumZiel = zielPosition.subtract(aktuellePosition);
        
        //Restdauer des Fluges
        restdauer = zumZiel.length() / speed;

        //Schrittweite für einen Frame berechnen -> vermutlich falsch
        schrittweite = zumZiel.length() * restdauer / tpf;

        //Vektor auf Schrittweite trimmen -> passt
        zumZiel = zumZiel.mult(1/zumZiel.length()); //eigentlich eher zumZielGekürzt :)
        zumZiel.mult(schrittweite);

        //Objekt um das Ergebnis bewegen
        geom.move(zumZiel);

        }

Wenn jemand mehr Informationen braucht, dann kriegt ihr die auch gerne! Ich hoffe nur es liegt nicht an irgendwelchen falschen Objektreferenzen oder ähnliches.

Momentan sieht es so aus, dass das Objekt bei egal welcher Geschwindigkeit direkt wegflitzt.

Woran könnte das liegen, ich bin mit meinem Latein am Ende, könnte mir jemand helfen?

Gruß, raptus93
 
Lass dir mal deine ausgerechneten Zahlen ausgeben. Oder schau wie hoch deine FPS ist, könnte daran liegen, dass die Funktion zu oft aufgerufen wird.
 

Neue Themen


Zurück
Oben