Plus de ticks que ce que l'on peut afficher n'est pas forcément utile si cela génère des frames perdues. Sans compter des dégénérescences mathématiques possibles quand l'intervalle de temps devient trop fin (té, c'est dans le lien de Sephi ça aussi, je crois)
Après, t'as aussi des jeux qui se basent sur les ticks sans aucun lien avec le temps. Là, oui, suivant la fluidité de la machine, le jeu donne l'impression d'être "au ralenti" ou "en accéléré" par rapport au temps réel (cf: PCSX2, l'émulateur: le jeu est "calculé" à 60FPS, si la machine est trop lente, le jeu sera ralenti et la bride à 60FPS évite qu'il ne soit accéléré). Ca peut être une façon de jouer.
Quant à ton histoire de tick qui se chevauchent, c'est inhérent au calcul parallèle. J'avais un article pas mal là dessus, soulignant que le temps du SetInterval s'écoule pendant que la callback s'exécute. Mais tu peux t'inspirer de ceci : http://stackoverflow.com/questions/72992...etinterval et lancer le timeout une fois la callback exécutée. Là, t'as pas de chevauchement. Et le délai du timeout peut être calculé à partir de la timeline, comme dis ci-dessus.
Citation :Que se passe t-il si un tick est plus long à calculer que le temps qui lui ai prévu?Je crois que c'est dans le lien donné par Sephi (intéressant, en effet): il suffit de se référer à une timeline fiable (ie: microtime) et de calculer l'écart temporel depuis le dernier tick.
Après, t'as aussi des jeux qui se basent sur les ticks sans aucun lien avec le temps. Là, oui, suivant la fluidité de la machine, le jeu donne l'impression d'être "au ralenti" ou "en accéléré" par rapport au temps réel (cf: PCSX2, l'émulateur: le jeu est "calculé" à 60FPS, si la machine est trop lente, le jeu sera ralenti et la bride à 60FPS évite qu'il ne soit accéléré). Ca peut être une façon de jouer.
Quant à ton histoire de tick qui se chevauchent, c'est inhérent au calcul parallèle. J'avais un article pas mal là dessus, soulignant que le temps du SetInterval s'écoule pendant que la callback s'exécute. Mais tu peux t'inspirer de ceci : http://stackoverflow.com/questions/72992...etinterval et lancer le timeout une fois la callback exécutée. Là, t'as pas de chevauchement. Et le délai du timeout peut être calculé à partir de la timeline, comme dis ci-dessus.