Question

Je développe un jeu d'iPhone en utilisant cocos2d et l'ont mis à montrer le FPS. Aujourd'hui, la plupart du temps l'application démarre et fonctionne à 60 images par seconde, mais parfois apparemment au hasard l'application démarre et supérieure à seulement 40 images par seconde.

Cela ne se produit pas souvent et semble se produire que lorsque vous quittez l'application et redémarrez le plus tôt possible, allthough cela ne déclenche pas l'effet la plupart du temps. Mais après quelques quitter le redémarrage rapide des séquences que le jeu commence et a finalement seulement 40 images par seconde au lieu de 60. normale Si je quitte l'application à ce point et attendre pendant environ 3 secondes, il repartira avec 60 images par seconde normal.

Je suppose cela a quelque chose à voir avec l'application de ne pas être en mesure de libérer toute sa mémoire avant de commencer à nouveau ?, ce problème semble être lié à l'iPhone OS.

Il est important de noter que cela se produit jamais si je quitte l'application attendre 5 secondes, puis redémarrez. Quelqu'un at-il eu ce genre de problème avant ?. Toutes les idées des raisons pour lesquelles cela pourrait se produire?.

Était-ce utile?

La solution

Si quelqu'un se demande c'est parce que il y avait un bug lors de l'émulation OPEN GL 2.0 dans l'iPhone 3GS / iPod Touch 3G, cela a été corrigé pour OS 3.1. Et tout ce que vous avez à faire est le suivant:

// Try to use CADisplayLink director
// if it fails (SDK < 3.1) use Threaded director
if( ! [Director setDirectorType:CCDirectorTypeDisplayLink] )
    [Director setDirectorType:CCDirectorTypeThreadMainLoop];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top