我无法在手机上测试这个,因为我很穷,而且是一个新的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
,但这些方法也无效。
答案 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;