Domanda

Sto sviluppando un gioco iPhone utilizzando cocos2d e lo hanno impostato per mostrare l'FPS. Ora la maggior parte delle volte l'applicazione si avvierà e correre a 60 fps, ma a quanto pare in modo casuale a volte l'applicazione si avvierà e top a soli 40 fps.

Questo non accade spesso e sembra accadere solo quando si esce dall'applicazione e riavviare il più presto possibile, allthough questo non fa scattare l'effetto maggior parte del tempo. Ma dopo un paio di rapido smettere di riavvio sequenze del gioco alla fine inizia e ha solo 40 fps, invece della normale 60. Se ho smesso l'applicazione a questo punto e attendere per circa 3 secondi sarà di nuovo iniziare con il normale 60 fps.

Io parto dal presupposto che questo ha qualcosa a che fare con l'applicazione non essere in grado di liberare tutta la sua memoria prima di iniziare di nuovo ?, questo problema sembra essere legato alla iPhone OS.

E 'importante notare che questo non accada se ho smesso l'applicazione attendere 5 secondi e riavviare. Qualcuno ha avuto questo tipo di problema prima ?. Tutte le idee del perché questo potrebbe accadere?.

È stato utile?

Soluzione

Se qualcuno si sta chiedendo questo è perché ha usato per essere un bug quando emulando OPEN GL 2.0 in iPhone 3GS / iPod Touch 3G, questo è stato fissato per OS 3.1. E tutto quello che dovete fare è il seguente:

// Try to use CADisplayLink director
// if it fails (SDK < 3.1) use Threaded director
if( ! [Director setDirectorType:CCDirectorTypeDisplayLink] )
    [Director setDirectorType:CCDirectorTypeThreadMainLoop];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top