0

当我将 CCSprite (Entity) 子类化以接收触摸输入时,这个问题就开始发生了。当我通过推到另一个场景离开主场景时,我让所有实体从共享的 CCTouchDispatcher 中删除它们的委托(即 onExit())。然后在主场景返回时重新激活(onEnterTransitionFinished())。

一半的时间这工作正常。但是,其他时候会发生这种情况:

cocos2d: deallocing <CCScheduler: 0x2323a0>

我觉得很奇怪。触摸代表是问题的原因是否合理?或者它可能与记忆有关?

4

2 回答 2

0

你也许在发行[[CCScheduler sharedScheduler] release]?如果是这样,请不要这样做。

CCScheduler 是一个单例。它永远不应该自行释放。

于 2012-01-18T19:48:27.930 回答
0

如果我没记错的话,问题源于尝试两次向/从 TouchDispatcher 注册/取消注册相同的实体(即在我再次尝试注册/取消注册之前它没有时间取消注册/注册)。

我通过添加一点 BOOL _didRegisterWithTouchDispatcher 来解决它,以避免做类似的事情。

于 2012-02-02T21:30:16.377 回答