2011-10-28 45 views
3

我目前正在用cocos2d構建遊戲,並且存在以下問題: 我有一個MenuScene,用戶可以在其中啓動遊戲。當他這樣做,gestureRecognizer被初始化在下列方式級別:Cocos2d GestureRecognizer在完成Level並重新啓動後無法工作

CCScene *scene = [LevelScene scene]; 
LevelScene *layer = (LevelScene *) [scene.children objectAtIndex:0]; 
UIPanGestureRecognizer *gestureRecognizer = [[[UIPanGestureRecognizer alloc] initWithTarget:layer action:@selector(handlePanFrom:)] autorelease]; 

一切工作正常,電平完成後,用戶將看到一個gameOverScene,併發送回MenuScene。當我再次開始遊戲時,除了事實之外,一切都有效(遊戲中的動畫,等級顯示等),即gestureRecognizer不再識別任何觸摸。你有什麼想法,爲什麼這可能是或如何調試呢?

謝謝。

+0

可能會有一些干擾self.isTouchEnabled = YES; menuScene/gameOverScene的功能我猜...還是不知道,怎麼弄出來的:/ – dschihejns

+0

讓我問你這個問題:1-你的意思是UIPanGestureRecognizer在第一次開始遊戲之前工作正常嗎? 2-你把那段代碼完全放在哪裏? – Mazyod

回答

2

在很可能的情況下,gestureRecognizer保留目標。我遇到了類似的問題,導致作爲UIKit類的委託的「目標」場景不能被釋放。即整個場景被泄露。

由於一些不幸的情況,原始場景的選擇器仍然被調用,但未被處理,因爲場景永遠被鎖定在「遊戲結束」狀態。我的猜測是,這種事情正在發生在你身上。

問題:在從LevelScene更改爲另一個場景之前,您是否重新設置了gestureRecognizer?如果不是,你絕對應該解決這個問題!

+0

謝謝,我確實忘了釋放gestureRecognizer並重新初始化gestureRecognizer對象.. doh。 – dschihejns

相關問題