Je dois exécuter ma boucle de jeu avec un timing très précis. J'essaie d'utiliser NSTimer pour faire cela, et j'obtiens des résultats corrects, mais il y a un peu de dérive. Lorsque NSTimer se déclenche, l'événement suivant commence à compter lorsque le gestionnaire termine ou commence-t-il à compter immédiatement. Si le premier est raisonnable pour moi d'utiliser setFireDate pour essayer de compenser le prochain tir de la minuterie - quand j'ai essayé, cela semblait pire.Utilisation de NSTimer pour obtenir des timings précis
Mon minuteur est réglé pour se déclencher toutes les 44ms et je voudrais l'empêcher de dériver de plus de 20ms. Si c'est le cas, j'aimerais le corriger pour le prochain incendie. Est-ce une chose raisonnable à faire avec NSTimer?
20ms sur 44ms ne dérivent pas, ce qui est inexact. NSTImer devrait être beaucoup plus fiable que cela. –
Je pense que ce que j'essayais de dire, c'est que je veux que la boucle de ma boucle ne dérive pas. D'après ce que je peux dire, le chronomètre commence son prochain chronométrage au moment où le gestionnaire sort, donc le temps semble être la valeur de la minuterie + le temps d'activité du jeu. – Ian1971
Il n'est certainement pas censé dériver comme ça d'après la documentation (et j'ai trouvé que c'était vrai dans le passé quand j'ai écrit un simple tracker de souris). S'il dérive, vous devriez déposer un rapport de bug avec Apple. –