Je voudrais mesurer le temps dont un utilisateur a besoin pour effectuer une tâche, comme dans un jeu. C'est simple: Obtenez le NSDate
de début et de fin, puis calculez la différence. Cependant, je ne veux pas tenir compte du temps que l'application passe en arrière-plan, comme lorsqu'un appel téléphonique arrive. Comment faire? Un NSTimer
est (plus ou moins) un réveil. J'ai besoin d'un chronomètre.Comment mesurer le temps de jeu écoulé sans tenir compte du temps que l'application est en arrière-plan?
Je pourrait mettre en place un NSTimer
au feu, par exemple, chaque seconde, et compter les secondes, puis annuler la minuterie lorsque l'application passe en arrière-plan et le réactiver lorsque l'application avant-plan, mais pénètre à nouveau, cela semble exagéré.
Y a-t-il une approche simple que j'ai négligée?
Je n'utilise pas le kit sprite. Le "jeu" n'avance que sur l'entrée de l'utilisateur. Il y a un état "game is running" mais pas de boucle de jeu autre que la boucle d'événement plain vanilla Cocoa. –
@ JoeVölker dans ce cas, vous pourriez répondre à l'application est passé à la notification en arrière-plan. Ne considérez pas le jeu comme un événement unique, mais comme une série de 1 ou plusieurs événements séparés par des choses comme arrêter le jeu en passant en arrière-plan, etc ... puis mesurer le temps pour chaque événement et les ajouter ensemble. – Fogmeister