2011-06-25 11 views
0

開発中のiPhone用のcocos2dアプリケーションに問題があります。プロレムはシーンチェンジ時に時々出てくる。アプリのstucksとコンソールがこの文の印刷を開始:中アサーションエラー - [CCSprite setTexture:]

アサーション失敗 - [CCSprite setTexture:]問題は常に起こり、そこにいないので

私はあなたが私にそれをデバッグするための正しい方法を提案したいと思いますバグがどこにあるのかを正確に示すものではありません。問題は、メモリの警告の後に発生します。

は、いくつかの時間後に...事前

でいただきありがとうございます。したがって、キャッシュされたテクスチャアトラスおよび関連するシートをアニメーションが利用している間にフラッシュされるスプライトキャッシュが原因です。それを処理するには何ができますか?

答えて

2

私は[CCSprite setTexture:]にブレークポイントを設定し、そこからスタックトレースをチェックして、嫌なコールに戻ります。もちろん、これは失敗が発生した場合にのみ成功します。私cocos2dのインストール(0.9.5)では

setTextureに主張するがなります

NSAssert(! usesBatchNode_, @"CCSprite: setTexture doesn't work when the sprite is rendered using a CCSpriteBatchNode"); 

// accept texture==nil as argument 
NSAssert(!texture || [texture isKindOfClass:[CCTexture2D class]], @"setTexture expects a CCTexture2D. Invalid argument"); 

だから、あなたが誤ってそれらのいずれかを行っています。

をごappDelegateはおそらく定義されています:あなたがコメントした後

EDIT

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { 
[[CCDirector sharedDirector] purgeCachedData]; 
} 

は、使用してみてください:

[[CCTextureCache sharedTextureCache] removeUnusedTextures]; 

の代わり[[CCDirector sharedDirector] purgeCachedData]。希望は改善されます。

+0

メモリ警告の後に問題が発生します。したがって、キャッシュされたテクスチャアトラスおよび関連するシートをアニメーションが利用している間にフラッシュされるスプライトキャッシュが原因です。それを処理するには何ができますか? – Sindico

+0

私の編集をご覧ください。 – sergio

関連する問題