CCMenuItemLabel不在模拟器中运行选择器

时间:2012-07-26 04:36:37

标签: cocos2d-iphone selector ccmenuitem

我无法在手机上测试这个,因为我很穷,而且是一个新的iOS程序员所以我不知道这只是模拟器的问题还是什么。 cocos2d也很新,所以请耐心等待。我正在为我的游戏开始一个屏幕。我在左上角和右上角制作了一张带有云的背景图片。然后在每个云上放置一个CCMenuItemLabel,使其看起来都很美味。它非常有效....直到你试图点击其中一个按钮,在这种情况下没有任何反应!这是我现在的代码。

MainMenu: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是我的屏幕尺寸,其余部分似乎非常简单。这都在MainMenu.m中,它扩展了CCScene。截至目前,我的选择器只是NSLog,以确保点击工作。对于他们中的任何一个都不会运行。

我尝试了什么:

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

 self.isTouchEnabled = YES;

答案 2 :(得分:0)

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

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

  • CCMenuItemLabel * play的位置设为ccp(s.width/5,s.height - 55)
  • CCMenu *playmenu的位置更改为CGPointZero

实施例

play.position = ccp(s.width/5,s.height - 55);
playmenu.position=CGPointZero;