objective-c - Cocos2d 菜单未注册触摸

标签 objective-c ios cocos2d-iphone

我创建一个新层,向其中添加三个菜单项,并且每个菜单项都有方法,它们登录到控制台并切换 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/

相关文章:

iphone - 如何让我的应用程序检测到按下主页按钮?

iphone - 直接使用NSString

javascript - 如何设置 WebView 以允许从本地或远程文件在 Canvas 上获取 getImageData?

iOS 应用程序即席分发和 MDM

ios - 动态创建的方法未被调用

ios - 如何在 iOS 中通过 In App Purchase 一次购买多个数量的一种产品

ios - Xcode "Release-iphoneos"文件夹

iOS 和 Cocos2d - 更改 CCSprite 的图像和新尺寸 = 失败

iphone - 使用 Cocos2d 自动 Sprite 动画

iphone - 检测触摸 Cocos2d-x