2011-12-30 129 views
4

按钮和菜单都在屏幕上,但没有发生时,按钮按下:CCMenuItemImage按钮不起作用

CCMenuItemImage *menuB = [CCMenuItemImage itemFromNormalImage:@"menuB.png" selectedImage:@"menuB.png" target:self selector:@selector(goMenu:)]; 
    CCMenuItemImage *tryAgainB = [CCMenuItemImage itemFromNormalImage:@"tryAgainB.png" selectedImage:@"tryAgainB.png" target:self selector:@selector(tryAgain:)]; 
    CCMenuItemImage *menuGoodByeT = [CCMenuItemImage itemFromNormalImage:@"menu.png" selectedImage:@"menu.png" target:self selector:@selector(nothing:)]; 

    menuB.position=ccp(-65,-40); 
    tryAgainB.position=ccp(15,-40); 


    menu = [CCMenu menuWithItems:menuGoodByeT,menuB,tryAgainB, nil]; 
    menu.isTouchEnabled = YES;  
    [self addChild: menu]; 

是,该方法有:id sender

这个菜单怎么了?它总是有一些问题。

回答

0

我试着用你的代码它完美的工作.....我工作如下,你可以参考代码.....我已经改变了图像名称为图标,我有单选择器方法它与所有三种方法一起工作。

-(id) init 
{ 
    if((self = [super init])) 
    { 
     CGSize winSize = [CCDirector sharedDirector].winSize; 
     self.isTouchEnabled = YES; 
     CCMenuItemImage *menuB = [CCMenuItemImage itemFromNormalImage:@"Icon-72.png" selectedImage:@"Icon-72.png" target:self selector:@selector(goMenu:)]; // Changed the Images and Selector Method 
     CCMenuItemImage *tryAgainB = [CCMenuItemImage itemFromNormalImage:@"Icon-72.png" selectedImage:@"Icon-72.png" target:self selector:@selector(goMenu:)]; 
     CCMenuItemImage *menuGoodByeT = [CCMenuItemImage itemFromNormalImage:@"Icon-72.png" selectedImage:@"Icon-72.png" target:self selector:@selector(goMenu:)]; 

     menuB.position=ccp(-65,-40); 
     tryAgainB.position=ccp(15,-40);   
     CCMenu * menu = [CCMenu menuWithItems:menuGoodByeT,menuB,tryAgainB, nil]; 
     menu.isTouchEnabled = YES;  
     [self addChild: menu]; 
    } 
return self; 
} 


-(void) goMenu:(id) sender 
{ 
    NSLog(@"Go menu pressed"); 
} 
+0

它的工作原理,但第一个菜单项是按钮后面,你不能推它们,因为menuGoodByeT触摸图层和按钮 - 因此不响应触摸,如果我把menuGoodByeT放在菜单列表的末尾,所以按钮是在menuGoodByeT后面,我不能看到他们,但然后我可以推他们.... – Curnelious 2012-01-01 10:08:59

+1

好的...你可以更好地区分坐标,你可以使用[菜单alignItemsVertically];也使它能够检测到触摸.... – Marine 2012-01-02 05:12:54

3

好吧,我觉得我得到它 - >

你在哪里坚持这段代码?

-(void)onEnter{ ???如果是,请检查您是否拨打[super onEnter]。否则,你将有很多问题

其次,如果不工作,然后检查是否有任何其他人在获得任何接触,因为你的菜单可能是背后的另一层