0

我有一个奇怪的,恼人的问题。

例如,在我的主菜单屏幕中,我有一个显示“说明”的按钮。

单击该按钮后,在说明层中,有一个按钮可将您带回主菜单。

然而,由于某种原因,按钮动作并不是精灵图像独有的。如果我在距离“backtomenu”按钮 3 英寸处单击,它仍然会带我回到主菜单。

所以,我的问题是,我怎样才能让一个按钮只有在你点击实际图像时才会被点击?(这就是我创建按钮的方式)

    - (id) init
{
    if((self = [super init]))
    {
        [self instructions];
    }
    return self;
}

- (void) instructions
{
    bgI = [CCSprite spriteWithFile:@"testbackground11.png"];
    [bgI setPosition:ccp(160,240)];
    ccTexParams params = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
    [bgI.texture setTexParameters:&params];
    [self addChild:bgI z:0];

    returnToMenu = [CCMenuItemImage itemFromNormalImage:@"berry2.png"
                                                            selectedImage:@"berry2_selected.png"
                                                            target : self
                                                            selector: @selector (ifReturnToMenu:)];
    CCMenu *myReturnMenu = [CCMenu menuWithItems:returnToMenu, nil];

                            [myReturnMenu alignItemsVertically];

                            [self addChild: myReturnMenu];

}

- (void) ifReturnToMenu: (CCMenuItem *) menuItem
{
    if(menuItem == returnToMenu)
    [[CCDirector sharedDirector] replaceScene:
     [CCTransitionFade transitionWithDuration:0.5f scene: [MainMenu scene]]];
}
4

1 回答 1

1

我不确定“isReturnToMenu”是如何被触发的,但你可以试试这个

- (void) ifReturnToMenu: (CCMenuItem *) menuItem{
if(menuitem == returnToMenu){
    [[CCDirector sharedDirector] replaceScene:
    [CCTransitionFade transitionWithDuration:0.5f scene: [MainMenu scene]]];
}

}

如果它不起作用,您需要发布触发它的代码,以便我们为您提供更多帮助

于 2012-09-04T05:24:00.383 回答