2011-10-28 7 views
3

現在、私はcocos2dでゲームを構築しています。次の問題があります。 ユーザーがゲームを開始できるMenuSceneがあります。彼がそうするとき、gestureRecognizerは次のようにレベルで初期化されます:レベルを終了して再起動するとCocos2d GestureRecognizerが機能しない

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

おそらくジェスチャーレコグナイザがターゲットを保持しています。私は同様の問題に遭遇し、UIKitクラスのデリゲートである「ターゲット」シーンが割り当て解除されないようにしました。つまり、シーン全体が漏れてしまった。

残念ながら、元のシーンのセレクタはまだ呼び出されていますが、シーンは「ゲームオーバー」状態で永久にロックされていたため処理されませんでした。私の推測では、それはあなたに起こっているようなものです。

質問:LevelSceneから別のシーンに変更する前に、ジェスチャーレクチャーを再開しますか?もしそうでなければ、あなたは絶対にそれを修正すべきです!

+0

ありがとう、私は実際にgestureRecognizerをリリースし、gestureRecognizerオブジェクトを再初期化するのを忘れていました。 – dschihejns

関連する問題