1

CMenu 項目で CGPoint が触れているかどうかを確認できますか? ポイントがボタンにある場合は YES を返し、ポイントがボタンにない場合は NO を返す必要があります。

 -(BOOL)isButton:(CGPoint)point
    {
        if(controlMode == 1)
        {

            for (CCMenu *menu in self.children)
            {

                    // If point in button
                    return YES;
                    // else
                    return NO;


                }
            }

        }
        return NO;
    }

メニューボタン:

CCMenuItem *pauseItem = [CCMenuItemImage itemFromNormalImage:@"pause.png" selectedImage:@"pause_.png" target:self selector:@selector(pauseGame:)]; 
CCMenuItem *resetItem = [CCMenuItemImage itemFromNormalImage:@"reset.png" selectedImage:@"reset_.png" target:self selector:@selector(resetClicked:)]; 
CCMenu *Menu = [CCMenu menuWithItems:pauseItem,resetItem, nil];
Menu.position = ccp(450, 40); 
[Menu alignItemsVerticallyWithPadding:5]; 
[self addChild:Menu];
4

2 に答える 2

2

あなたが参照しているポイントは(コメントから)タッチなので、メニューのボタンをタッチしていると、その項目が選択されます。

-(BOOL) isAButtonSelected
{
    for(CCMenuItem* item in menu.children)
    {
        if(item.isSelected) return YES;
    }
    return NO;
}
于 2012-04-14T10:28:54.797 に答える
1

あなたはこのようにsmthを試すことができます

for(CCMenuItem* item in yourMenu.children)
{
    CCPoint localPoint = [item convertToNodeSpace:point];
    if( (localPoint.x <= item.contentSize.width) && (localPoint.y <= item.contentSize.height) )
    {
        // in that case your point is in this item of your CCMenu
    }
}
于 2012-04-11T22:20:12.423 に答える