2012-04-11 10 views
1

CGenuがCMenu項目に触れているかどうか確認できますか? ポイントインボタンの場合はYES、ポイントのボタンの場合はNOを返す必要があります。CMenuで現在のCGPointがチェックされています

-(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]; 
+0

ポイントはタッチ位置ですか? –

+0

はい。私のポイントはタッチの場所です – user1021984

答えて

1

あなたが触れている場合は、あなたがに参照のうえているポイントは、(コメント)のタッチなので、あなたはこの

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 
    } 
} 
2

のようになめらかに試すことができますボタンを押すと、その項目が選択されます。

-(BOOL) isAButtonSelected 
{ 
    for(CCMenuItem* item in menu.children) 
    { 
     if(item.isSelected) return YES; 
    } 
    return NO; 
} 
+0

2012-04-15 19:27:09.054 AppScest [468:707] ***キャッチされない例外 'NSInvalidArgumentException'のためアプリを終了します、理由: ' - [CCSprite isSelected]:インスタンスに送信された認識できないセレクタ0x37d100 ' – user1021984

+0

CCSpriteを使用しました。私はCCMenuItemを使用しました –

+0

私はCCMenuItemを使用しました – user1021984

関連する問題