我创建一个新层,向其中添加三个菜单项,并且每个菜单项都有方法,它们登录到控制台并切换 View ,但没有任何反应。为什么会这样?
- (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.
最佳答案
CCMenuItem 实例必须添加到 CCMenu 实例中,而 CCMenu 实例必须添加到图层中。
CCMenu *mainMenu = [CCMenu menuWithItems:menu1, menu2, menu3, nil];
mainMenu.position = CGPointZero;
[self addChild:mainMenu];
祝你好运!
关于objective-c - Cocos2d 菜单未注册触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11675566/