2012-12-12 113 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