2016-09-26 1 views
0

Ich arbeite an einem Schnellfeuer-Programm für Spiele und was nicht, und ich versuche zu suchen, um einen Weg zu einer konsequent zeitgesteuerten Schleife zu finden, jetzt verstehe ich Windows ist nicht ein Echtzeit-Betriebssystem (RTOS), ich möchte nur wissen, was die zuverlässigste Methode wäre für das, was ich versuche zu tun. Meine derzeitige Methode ist nur Threading und Schlafen. Wenn Sie mir ein Codebeispiel auf die beste Methode zur Verfügung stellen könnten, wäre das großartig. Auch eine Nebenfrage ist C++ genauer, wenn es um Timing geht?Versuchen, eine konsistent/genaue zeitgesteuerte Schleife

Antwort

2

Wenn Sie nicht an dedizierter Hardware arbeiten, können Sie keine Konsistenz im Timing Ihrer Schleife garantieren, da Sie keine Kontrolle darüber haben, was sonst auf demselben System läuft, aber Sie können das Problem umgehen Die Zeit, die zwischen jeder Iteration Ihrer Schleife verstreicht, in Ihre Berechnungen.

Der Begriff dafür ist delta-time - was typischerweise die Änderung der Zeit seit dem letzten Frame im Kontext der Spieleentwicklung bedeutet. Wenn Ihr Spiel beispielsweise mit 60 fps läuft, liegt Ihre Delta-Zeit normalerweise bei etwa 16 Millisekunden oder 0,016 Sekunden.

Wenn Sie mit Delta-Zeit suchen, finden Sie viel mehr nützliche Ergebnisse. Zum Beispiel:

+0

ich nicht wirklich bin versucht, etwas Spiel spezifisch zu tun, bin ich Looping nur und prüfen, ob eine Taste gedrückt wird und dann das Drücken von Tasten simuliert. Ich versuche nur, die beste und genaueste Methode herauszufinden, wie ich damit umgehen kann. – DaftHacker

+0

@DaftHacker: Selbst wenn es Ihnen gelungen ist, Tastenbetätigungen mit deterministischem Timing zu simulieren, werden sie nur in die Eingangsereigniswarteschlange des Empfangsprozesses gestellt, die verarbeitet werden, wenn * dieser * Prozess dies wählt, was Sie nicht kontrollieren können über so ist es vielleicht letztlich sinnlos. – Clifford

Verwandte Themen