获取顶级孩子的班级名称

时间:2014-07-22 03:20:36

标签: objective-c cocos2d-iphone

我在目标c / cocos2d工作。我有一个名为AllLevelAndModes的场景,我添加了一个类型为levelScroll的名为EasyLevelSelectScene的CCScrollView。在这个级别的滚动条上,我有一堆按钮用于我的游戏关卡。当有人触摸其中一个按钮时,会出现一个弹出窗口,显示有关该级别的一些统计信息。我点击按钮时,通过添加childing到EasyLevelSelectScene来添加此弹出窗口。这个孩子属于LevelSelectDropdown类。我想创建一个功能,如果用户点击弹出窗口(小于整个屏幕),弹出窗口就会消失。

现在我想我可以获得弹出窗口和屏幕的大小,如果用户点击x和y的某个范围之外,弹出窗口就会消失。但这有点麻烦。有一个更好的方法吗?一旦弹出窗口出现,我试图通过运行以下代码来获取该类的名称。

-(void) touchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
    CGPoint touchLocationTemp = [[CCDirector sharedDirector] convertToGL: [touch locationInView:touch.view]];
    CCResponderManager *responder = [[CCDirector sharedDirector] responderManager];
    CCNode *node = [responder nodeAtPoint:touchLocationTemp];
    CCLOG(@"class type %@", node); //Always reads 'EasyLevelSelectScene' no matter where I tap

    if([node isKindOfClass:[EasyLevelSelectScene class]]) {
        //go back to level select screen
    }
}

不幸的是,这不起作用,因为无论我在哪里点击日志EasyLevelSelectScene,即使我点击我的弹出窗口!为什么这样做,有没有办法获得最顶级孩子的班级名称?谢谢你的帮助!

0 个答案:

没有答案
相关问题