0

この問題は、タッチ入力を受け取るために CCSprite (エンティティ) をサブクラス化したときに発生し始めました。別のシーンにプッシュしてメイン シーンから離れるときは、すべてのエンティティが共有 CCTouchDispatcher (つまり onExit()) からデリゲートを削除するようにします。そして、メイン シーンが戻ったら再アクティブ化します (onEnterTransistionFinished())。

半分の場合、これでうまくいきます。ただし、これが発生する場合もあります。

cocos2d: deallocing <CCScheduler: 0x2323a0>

私はかなり奇妙だと思います。Touch Delegates が問題の原因である可能性はありますか? それとも、おそらくメモリに関連していますか?

4

2 に答える 2

0

私の記憶が正しければ、同じエンティティを TouchDispatcher との間で 2 回登録/登録解除しようとしたことが問題の原因でした (つまり、再度登録/登録解除する前に、登録解除/登録する時間がありませんでした)。

そのようなことを避けるために、少し BOOL _didRegisterWithTouchDispatcher を追加して解決しました。

于 2012-02-02T21:30:16.377 に答える
0

おそらく発行してい[[CCScheduler sharedScheduler] release]ますか?もしそうなら、それをしないでください。

CCScheduler はシングルトンです。それ自体で割り当てを解除しないでください。

于 2012-01-18T19:48:27.930 に答える