0

我不能在我的手机上测试这个,因为我很穷,而且是一个新的 iOS 程序员,所以我不知道这只是模拟器的问题还是什么。cocos2d 也很新,所以请多多包涵。我正在为我的游戏制作一个开始屏幕。我在左上角和右上角制作了一个带有云的背景图像。然后在每个云上放一个CCMenuItemLabel,让它看起来很漂亮。它非常有效....直到您尝试单击任何一个按钮,在这种情况下什么都没有发生!这是我现在拥有的代码。

主菜单:CCScene

@implementation MainMenu

-(id) init {

  // Play Label to left cloud
  CCLabelTTF * playLabel = [CCLabelTTF labelWithString:@"Play" fontName:@"Marker Felt" fontSize:24];
  playLabel.color = ccBLACK;
  CCMenuItemLabel * play = [CCMenuItemLabel itemWithLabel:playLabel target:self selector:@selector(playGame)];
  CCMenu * playmenu = [CCMenu menuWithItems:play, nil];
  playmenu.position = ccp(s.width/5,s.height - 55);
  [self addChild:playmenu z:10];

  // Options label to right cloud
  CCLabelTTF * optionsLabel = [CCLabelTTF labelWithString:@"Options" fontName:@"Marker Felt" fontSize:24];
  optionsLabel.color = ccBLACK;
  CCMenuItemLabel * options = [CCMenuItemLabel itemWithLabel:optionsLabel target:self selector:@selector(options)];
  CCMenu * optmenu = [CCMenu menuWithItems:options, nil];
  optmenu.position = ccp(s.width - s.width/5,s.height - 55);
  [self addChild:optmenu z:10];

  // Add background at z:-1 plus other

}

@end

s 是我的屏幕尺寸,其余的似乎很简单。这都在扩展 CCScene 的 MainMenu.m 中。截至目前,我的选择器只是 NSLogs,以确保点击有效。他们中的任何一个都不会运行。

我试过的:

根据 cocos2d 论坛的建议,我将两个选择器更改为@selector(playGame:),然后将方法更改为,-(void)playGame:(id) sender但这也不起作用。

4

3 回答 3

1

最后,我使用相同的模板开始了一个新项目。我从上面输入完全相同的代码并运行它。它适用于这个项目。所以我开始将旧项目中的东西复制并粘贴到这个项目中,试图看看是什么让它坏了,最后没有任何东西坏了它。我想它一定是在构建阶段或其他东西,但现在一切正常。

于 2012-07-27T19:47:12.870 回答
0

现在我在 cocos2D 2.0 示例中使用了相同的代码。它工作正常。

我猜你没有为你的图层启用触摸。在 CCLayer 的 init 方法中使用此代码。

 self.isTouchEnabled = YES;
于 2012-07-26T06:08:09.103 回答
0

我知道它是一个旧线程,但我今天遇到了同样的问题。

这是我必须做的,让它工作,

  • 设置CCMenuItemLabel * playto的位置ccp(s.width/5,s.height - 55)
  • 将位置更改CCMenu *playmenuCGPointZero

例子

play.position = ccp(s.width/5,s.height - 55);
playmenu.position=CGPointZero;
于 2015-02-11T07:43:53.257 回答