J'écris un jeu sur iOS et j'essaye de configurer le mouvement de réponse en utilisant l'accéléromètre. Donc quand je démarre le jeu sur l'iPhone, tout va bien et l'accéléromètre répond sans problème. Mais quand j'arrête la boucle de jeu (menu pause), puis que je la relance, l'entité sur l'écran saute quelque part, puis après quelques secondes revient en place. Je crois que cela se produit en raison d'une différence de delta entre la boucle de jeu et le delta de l'accéléromètre. Donc, je me demandais est-il un moyen de régler l'accéléromètre sur iPhone pour mettre à jour uniquement les valeurs lorsque la boucle de jeu se met à jour?Est-il possible de régler UIAccelerometer delta?
Les valeurs de UIAccelerometer sont lus comme ça (j'ai juste besoin l'axe des x) - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { accelerometValues[0] = acceleration.x * 0.1f + accelerometValues[0] * (1.0 - 0.1f); }
L'accéléromètre est configuré comme suit [[UIAccelerometer sharedAccelerometer] setUpdateInterval:1.0/60.0]; [[UIAccelerometer sharedAccelerometer] setDelegate:currentScene];
La boucle de jeu lui-même a été pris de tutoriel par Alex Diener GameLoop Tutorial
Merci, cela a fonctionné. Je ne voulais pas modifier les données, mais il semblait que c'était mis en cache puis libéré. – Setrino
Si votre boucle de jeu se trouve dans un thread différent et que la boucle d'exécution de ce thread n'était pas en cours d'exécution, il pourrait faire la queue à l'accéléromètre puisque l'accéléromètre appelait toujours le délégué lorsque le jeu était en pause. Cela pourrait être ce que vous voyiez. Lorsque le thread est repris, tous ces appels de méthode seraient exécutés. – Kekoa
Cela semble raisonnable. Merci une fois de plus. – Setrino