第二次进入场景,输入不被接受

时间:2013-02-18 19:08:04

标签: ios cocos2d-iphone ccmenuitem

我发现了Cocos2D的特性,我似乎无法修复它。从AppDelegate我加载到一个菜单,这是一个CCScene。场景中有一个CCLayer,它本身拥有CCMenu。一切正常,第一次通过。我的游戏结束后,我将用户带到GameOverScene并提示他们返回菜单。我正在重新加载菜单场景并调用[[CCDirector sharedDirector] replaceScene:menu]。但是,进入此菜单后,并非所有输入功能。我无法再点击菜单项,但我可以平移/多次触摸它们来触发项目。是什么给了什么?

初始化是否有某种方法可以重置CCScene以接收输入,如果是这样,这会搞乱CCMenu的输入接收吗?

2 个答案:

答案 0 :(得分:1)

您是否在任何课程中覆盖了onEnteronExit等任何on *方法?

如果是这样,你必须在每个中调用超级实现(即[super onEnter]),否则一些cocos2d功能(如调度或输入)可能会停止工作。

答案 1 :(得分:1)

我终于明白了,答案就在我的鼻子底下。在我的游戏开发早期,我需要一种方法来阻止KKInput吞咽手势。我不完全确定这个动作的后果,但我能够这样做:

KKInput* input = [KKInput sharedInput];
UITapGestureRecognizer* tapGestureRecognizer;
tapGestureRecognizer = input.tapGestureRecognizer;
tapGestureRecognizer.cancelsTouchesInView = NO

似乎默认的Kobold2D行为是吞下所有触摸,这阻止了CCMenu接收任何轻击手势。