2

cocos2d を使用して iPhone ゲームを開発しており、FPS を表示するように設定しています。現在、ほとんどの場合、アプリケーションは 60 fps で起動して実行されますが、明らかにランダムに、アプリケーションが起動してわずか 40 fps でトップになることがあります。

これは頻繁には発生せず、アプリケーションを終了してできるだけ早く再起動した場合にのみ発生するようですが、ほとんどの場合、これは効果を引き起こしません. しかし、いくつかのクイック終了-再起動シーケンスの後、ゲームは最終的に開始され、通常の 60 fps ではなく 40 fps しかありません。この時点でアプリケーションを終了し、約 3 秒間待機すると、通常の 60 fps で再び開始されます。

これは、アプリケーションが再起動する前にすべてのメモリを解放できないことに関係していると思いますか?、この問題は iPhone OS に関連しているようです。

アプリケーションを終了して 5 秒待ってから再起動すると、このようなことは起こらないことに注意してください。誰かが前にこの種の問題を抱えていましたか?. なぜこれが起こっているのかについてのアイデアはありますか?.

4

1 に答える 1

2

これは、iPhone 3GS/iPod Touch 3G で OPEN GL 2.0 をエミュレートする際にバグがあったためであると考えている方のために、OS 3.1 では修正されています。そして、あなたがしなければならないのは次のことだけです:

// Try to use CADisplayLink director
// if it fails (SDK < 3.1) use Threaded director
if( ! [Director setDirectorType:CCDirectorTypeDisplayLink] )
    [Director setDirectorType:CCDirectorTypeThreadMainLoop];
于 2010-01-27T15:11:35.480 に答える