1

画面の左上隅にある[プレーヤーの切り替え]ボタンの上に[メニュー]ボタンがあると思っていましたが、[メニュー]ボタンの上部は画面の上にあります。どうして?これはバグですか?

左揃えは大丈夫です。

ありがとう!

-(void) superSceneEnded
{
  _sceneEnded = true;

  CCMenu *menu = [CCMenu menuWithItems:nil];
  menu.anchorPoint = ccp(0, 1); // Upper left corner
  menu.position = ccp(2, _winSize.height - 2); // Almost at upp left corner of screen
  [self addChild:menu];

  [self addButton:menu :@"Menu" :@selector(goToMenu)];
  if ([MatchMgr instance].currentMatch.isOnDevice)
  {
    [self addButton:menu :@"Switch player" :@selector(switchPlayer)];
  }
  [menu alignItemsVerticallyWithPadding:10];
}

-(void) addButton: (CCMenu*) menu: (NSString*) text: (SEL) selector
{
  CCMenuItem *menuItem = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button-pressed.png" target:self selector:selector];
  menuItem.anchorPoint = ccp(0, 1); // Upper left corner
  //menuItem.scale = 0.5;
  [menu addChild:menuItem];

  // The code below is not relevant for the question, but I keep it for your understanding.
  CCLabelBMFont *bmText = [CCLabelBMFont labelWithString:text fntFile:@"MainFont.fnt"];
  bmText.color = ccBLACK;
  bmText.scale = 0.75;
  bmText.alignment = NSTextAlignmentCenter;
  bmText.position = ccp(75, 15);
  [menuItem addChild: bmText];

}

4

1 に答える 1

3

これは本当に壊れているようです:http: //www.cocos2d-iphone.org/forum/topic/8261

代わりに、ボタンを自分で配置します。

これが私の、それほど派手ではないコードです:

-(void) superSceneEnded
{
  _sceneEnded = true;

  CGFloat yPos = _winSize.height - 10;
  CCMenu *menu = [CCMenu menuWithItems:nil];
  menu.position = ccp(0, 0);
  [self addChild:menu];

  [self addButton:menu :@"Menu" :@selector(goToMenu): &yPos];
  if ([MatchMgr instance].currentMatch.isOnDevice)
  {
    [self addButton:menu :@"Switch player" :@selector(switchPlayer): &yPos];
  }
}

-(void) addButton: (CCMenu*) menu: (NSString*) text: (SEL) selector: (CGFloat*) yPos
{
  CCMenuItem *menuItem = [CCMenuItemImage itemFromNormalImage:@"button.png" selectedImage:@"button-pressed.png" target:self selector:selector];
  menuItem.scale = 0.5;
  menuItem.position = ccp(42, *yPos);
  *yPos -= 20;
  [menu addChild:menuItem];

  CCLabelBMFont *bmText = [CCLabelBMFont labelWithString:text fntFile:@"MainFont.fnt"];
  bmText.color = ccBLACK;
  bmText.scale = 0.75;
  bmText.alignment = NSTextAlignmentCenter;
  bmText.position = ccp(75, 15);
  [menuItem addChild: bmText];
}
于 2012-10-12T08:07:08.870 に答える