|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Convertit un temps réel écoulé variable en un nombre de pas de simulation fixes. More...
#include <FixedTimestep.h>
Public Member Functions | |
| FixedTimestep (float fixedDeltaSeconds=1.0f/60.0f, int maximumStepsPerCall=5) | |
| Construit un cadenceur. | |
| int | advance (float elapsedSeconds) |
| Accumule le temps écoulé et renvoie le nombre de pas fixes à exécuter. | |
| float | fixedDeltaSeconds () const |
| Durée d'un pas de simulation. | |
| float | interpolationAlpha () const |
| Fraction de pas restant dans l'accumulateur, pour l'interpolation du rendu. | |
Private Attributes | |
| float | _fixedDeltaSeconds |
| int | _maximumStepsPerCall |
| float | _accumulator |
Convertit un temps réel écoulé variable en un nombre de pas de simulation fixes.
Accumule le temps réel fourni par l'appelant et le découpe en pas de durée constante, garantissant une simulation déterministe indépendante du framerate. Un plafond du nombre de pas par appel évite la « spirale de la mort » lorsque le temps écoulé devient très grand (fenêtre gelée, point d'arrêt…).
La classe ne mesure pas le temps elle-même (aucune dépendance système) : le temps réel écoulé lui est passé en paramètre, ce qui la rend testable en isolation.
|
explicit |
Construit un cadenceur.
| fixedDeltaSeconds | Durée d'un pas de simulation, en secondes (défaut : 1/60). |
| maximumStepsPerCall | Nombre maximal de pas restitués par appel à advance() (anti-spirale). |
|
nodiscard |
Accumule le temps écoulé et renvoie le nombre de pas fixes à exécuter.
| elapsedSeconds | Temps réel écoulé depuis le dernier appel, en secondes. |
|
nodiscard |
Durée d'un pas de simulation.
|
nodiscard |
Fraction de pas restant dans l'accumulateur, pour l'interpolation du rendu.
|
private |
|
private |
|
private |