2012-07-26 71 views
0

我创建一个新图层,向它们添加三个菜单项,并且我有他们每个人的方法,他们登录到控制台并切换视图,但没有任何反应。为什么这样?Cocos2d菜单没有注册触摸

- (id) init 
{ 
    if (self = [super init]) 
    { 
    [self setIsTouchEnabled:YES]; 
    CCSprite *background = [CCSprite spriteWithFile:@"bg.png"]; 
    [background setPosition:CGPointMake(size.width/2, size.height/2)]; 
    [self addChild:background z: 0]; 
    CCMenuItemFont *menu1 = [CCMenuItemFont itemFromString:@"New game" target:self selector:@selector(startNewGame)]; 
    [menu1 setPosition:CGPointMake(size.width/2, 330)]; 
    CCMenuItemFont *menu2 = [CCMenuItemFont itemFromString:@"Options" target:self selector:@selector(options)]; 
    [menu2 setPosition:CGPointMake(size.width/2, 250)]; 
    CCMenuItemFont *menu3 = [CCMenuItemFont itemFromString:@"Credits" target:self selector:@selector(credits)]; 
    [menu3 setPosition:CGPointMake(size.width/2, 170)]; 
    [self addChild:menu1]; 
    [self addChild:menu2]; 
    [self addChild:menu3]; 
    } 
    return self; 
} 

- (void) credits 
{ 
    NSLog(@"In credits"); 
} 

// same methods for new game and options. It never gets called. 

回答

1

CCMenuItem实例必须添加到必须添加到图层的CCMenu实例中。

CCMenu *mainMenu = [CCMenu menuWithItems:menu1, menu2, menu3, nil]; 
mainMenu.position = CGPointZero; 
[self addChild:mainMenu]; 

祝你好运!

+0

谢谢!有效! – Dvole 2012-07-26 18:44:46