0

新しいレイヤーを作成し、それらに3つのメニュー項目を追加します。それぞれにメソッドがあり、コンソールにログインしてビューを切り替えますが、何も起こりません。なんでそうなの?

- (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.
4

1 に答える 1

1

CCMenuItemインスタンスはCCMenuインスタンスに追加する必要があり、CCMenuインスタンスはレイヤーに追加する必要があります。

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

幸運を!

于 2012-07-26T18:34:06.410 に答える