milliseconds

___ qstnhdr ___ Behandlung einer Update-Schleife mit C ++ Chrono? ___ answer15839862 ___

Wenn Sie %code% verwenden, sollten Sie so lange wie möglich Casting-Dauern vermeiden oder Durationen in rohe Integralwerte umwandeln. Stattdessen sollten Sie bei den natürlichen Laufzeiten bleiben und die Typsicherheit ausnutzen, die Durationstypen bieten.

Im Folgenden finden Sie eine Reihe spezifischer Empfehlungen. Für jede Empfehlung ziehe ich Zeilen Ihres Originalcodes und zeige dann, wie ich diese Zeilen umschreiben würde.

%Vor%

Es gibt keinen Grund, diese Art von Berechnungen mit manuellen Konvertierungskonstanten durchzuführen. Stattdessen können Sie tun:

%Vor%
%Vor%

Sie können den Wert einfach in seinem ursprünglichen Typ beibehalten:

%Vor%
%Vor%

Verwenden Sie stattdessen:

%Vor%
%Vor%

Es ist am besten, Code zu schreiben, der %code% -Typen durchgängig verwendet, anstatt generische Typen zu verwenden, aber wenn Sie wirklich einen generischen Typ brauchen (zB wenn Sie %code% an a übergeben müssen API von Drittanbietern), können Sie Folgendes tun:

%Vor%

Und um das Delta zu bekommen, sollten Sie etwas tun wie:

%Vor%     
___ tag123chrono ___ ist die C ++ 11-Bibliothek zum Darstellen und Manipulieren von Zeit. ___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ tag123millisekunden ___ Eine Millisekunde ist ein Tausendstel (1/1000) einer Sekunde. ___ qstntxt ___

Ich bin definitiv etwas verloren mit der neuen C ++ Chrono-Bibliothek.

Hier habe ich eine Update-Schleife. Es führt zwei Operationen aus:

%Vor%

Das sind lange Operationen, und es ist schwer zu sagen, wie lange sie sind.

Also messen wir, wie lange sie gedauert haben, dann machen wir ein paar Berechnungen und stellen den besten Weg fest, um update aufzurufen, bevor wir render aufrufen.

Dazu benutze ich die Chrono-Funktion von C ++ 11. Ich wählte es, weil es wie ein guter Deal klang: Genauer, mehr Plattform abhängig. Ich stelle fest, dass ich jetzt mehr Probleme habe als jetzt.

Nachfolgend ist mein Code sowie mein Hauptproblem. Jede Hilfe zu entweder dem Problem oder zu einer richtigen Art, meine Operationen auszuführen, wird dringend benötigt!

Ich habe meine Fragen in Kommentaren direkt neben den Zeilen markiert, die ich im Folgenden wiederholen werde.

Die Header-Datei:

%Vor%

Die vereinfachte Update-Schleife

%Vor%

Die Hauptfrage lautet: Meine mDeltaTime kommt immer winzig raus. Es steckt im Grunde in einer fast unendlichen Schleife. Dies liegt daran, dass die kMaxDeltatime sehr klein ist, aber wenn ich 60 Frames pro Sekunde anvisiere, habe ich nicht die richtigen Millisekunden berechnet?

Hier sind alle Fragen von oben aufgelistet:

%Vor%

Es tut mir leid für die Verwirrung Jungs. Ich fühle mich wie ein Idiot mit dieser Chrono-Bibliothek. Die meisten Hilfeseiten oder Referenzmaterial oder sogar der direkte Code selbst sind sehr verwirrend zu lesen und zu verstehen, auf was ich sie anwende. Hinweise darauf, wie ich nach Lösungen oder Code suchen sollte, sind sehr willkommen!

BEARBEITEN: Joachim wies darauf hin, dass std :: min / max für Millisekunden gut funktioniert! Aktualisierter Code, um Änderungen zu berücksichtigen.

    
___
5
Antworten

Javascript: Aktuelles Datum in Millisekunden (UTC) erhalten (KEINE Verwendung von Strings)

Nun, Sie könnten denken, dass diese Frage bereits gestellt wurde, aber ich denke, dass es nicht so ist. Die Lösungen, die ich über alle gelesen habe, hatten diese "Puzzle" -Technik (wie getUTCMonth() + getUTCMinutes + ... ). Da ich aber nur di...
01.06.2012, 21:01
3
Antworten

getMilliseconds () aus Java-Datum

Ich brauche eine Funktion wie lang getMillis (Datum aDatum); gibt die Millisekunden des zweiten Datums zurück. Ich kann Yoda, SimpleDateFormat oder andere Bibliotheken nicht verwenden, weil es gwt-Code ist. Meine aktuelle Lösung macht dat...
20.01.2011, 09:35
1
Antwort

Behandlung einer Update-Schleife mit C ++ Chrono?

Ich bin definitiv etwas verloren mit der neuen C ++ Chrono-Bibliothek. Hier habe ich eine Update-Schleife. Es führt zwei Operationen aus: %Vor% Das sind lange Operationen, und es ist schwer zu sagen, wie lange sie sind. Also messen wir...
09.02.2013, 06:17