0

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

初始化时有什么方法可以重置 CCScene 以接收输入,如果是这样,这会扰乱 CCMenu 的输入接收吗?

4

2 回答 2

1

您是否覆盖了任何类中的任何 on* 方法,例如onEnter,onExit等?

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

于 2013-02-18T21:03:11.340 回答
1

我终于想通了,答案就在我的眼皮底下。在我的游戏开发早期,我需要一种方法来阻止 KKInput 吞下手势。我不完全确定此操作的后果,但我能够这样做:

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

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

于 2013-02-19T01:29:48.347 回答