Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wenn du die Zeit exakt messen willst, solltest du dir mal in der API-Hilfe die Funktion QueryPerformanceCounter ansehen (und im Zusammenhang damit auch QueryPerformanceFrequency).Die ist nämlich perfekt für die genaue Zeitmessung gedacht und nutzt einen hochpräzisen Timer.
P.S. : Im Forum hab ich schon einige male etwas zu diesem Thema gepostet, bin aber zu faul das Ganze um die Uhrzeit noch genauer zu erklären , benutz also mal die Suchfunktion.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Zitat:
Aus irgendeiner mir unerklärlichen Weise versucht diese Schleife mit Erfolg, etwa 90 fps einzuhalten.
Kann es sein, dass du VSync eingeschalten hast und dein Monitor rein zufällig mit 90 Hz läuft? Wenn ja dann ist das vollkommen normal.
Zitat:
Jetzt will ich aber die ganze Physik (Kollisionen etc.) von der Anzeigeschleife abkoppeln und in eine neue, unabhängige Schleife packen, die mit ähnlicher Frequenz läuft.
Warum willst du sie denn überhaupt abkoppeln?
Es gäbe (jetzt so auf die schnelle) 2 möglichkeiten für dein Problem. 1. Du lagerst deine Berechnungen in einen anderen Tread aus. 2. Du berechnest die Physik am anfang der Renderschleife.
Ich persönlich wäre eher für 2tens. Kollisionen von den Zeichnen (Bewegen) der Objekte loszulösen wäre nicht sinnvoll, weil du diese Berechnungen (sofern sich das objekt bewegt) für jedes Frame aufführen musst. Und der zweite Punkt der dafür spricht ist. Es ist wesentlich einfacher zu programmieren.
Registriert: Sa Nov 02, 2002 18:06 Beiträge: 299 Wohnort: Dresden
Du musst jedoch nicht in jedem Renderdurchlauf alles berechnen, sondern nür z.B. in jedem zweiten. Das bringt Geschwindigkeit wirkt sich aber kaum auf das Spiel auf (zumindest merkst du es nicht)
_________________ "Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Guest hat geschrieben:
Eine jener Ideen ist, gleich von vorneherein mehrere Schleifen parallel laufen zu lassen, weil das Chaos mit einer einzigen Schleife irgendwann nicht mehr zu bewältigen ist (wie beim 'alten' Spiel).
Ja. Das ist eines der Hauptprobleme. Und früher oder Später muss da halt was anständiges her.
Weswegen ich aber gefragt habe. Ich wollte nur wissen, ob du die Grundzüge vom Programmieren verstanden hast. Es nützt ja nichts, wenn ich dir hier einen von Multithreading erzähle du aber keinen blassen von Programmieren hast!
Und genau darum geht es in dem Tutorial. Um Multithreading. Wie kann ich Threads erstellen. Was sind sie überhaupt und worauf muss ich achten.
Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.