2012-12-12 84 views
0

我正在尝试处理cocos2d,并且出现问题。我会尽量清楚和简短,我有一个场景文件Level1.h和Level1.m http://pastebin.com/BdZqpXBb 和我的下一个场景:http://pastebin.com/1YPy0E9f 当我从Level1.m切换到下一个场景,或主菜单,似乎是一切变化,我无法看到Level1.m中的任何内容,但精灵仍然处于活动状态,并在我触摸它们时播放声音。为什么这样?我怎么能杀他们,并删除?这是我的图层和场景逻辑或内存管理的问题?谢谢Cocos2d:替换的场景仍然有效

回答

0

这是一个内存管理问题。你的场景已经泄露,它还没有被释放。也许你在某处保持强烈的参考?

所有这些变量,它们都位于大括号内的@interface部分,而不在@implementation下面。因为他们现在的方式使他们成为全局变量,而不是每个实例变量。由于它们是全局的,当你改变场景时,这些变量保持的引用不会被释放。

+0

没有什么帮助,我提出了新的项目,小的(更容易阅读),两个场景,一个精灵,这是同样的问题,这里是我的代码: HelloWorldLayer: http://pastebin.com/L7hZ7kvh 等场景: http://pastebin.com/y3XTNEhn – user1697272

+0

我在我的onExit方法中加入了这一行: [[CCEventDispatcher sharedDispatcher] removeMouseDelegate:self]; ,似乎它的工作 – user1697272

+0

但是,我遇到了一些问题与按CCmenu项目上的鼠标.. – user1697272