2

セレクターを持つccmenuitemspriteにccmenuitemspriteを持つccmenuがあります。子の子がセレクターを起動するが起動しない再生ボタンになりたいです。

CCMenu *menu [CCMenu menuWithItems: nil];
CCMenuItem *bg = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithFile:@"sprite_sheet.png" rect:CGRectMake(0,50,100,100)] 
                                         selectedSprite:nil 
                                         disabledSprite:nil 
                                                 target:self 
                                               selector:nil];
CCMenuItem *playBtn = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithFile:@"sprite_sheet.png" rect:CGRectMake(0,0,50,50)] 
                                              selectedSprite:[CCSprite spriteWithFile:@"sprite_sheet.png" rect:CGRectMake(50,0,50,50)] 
                                              disabledSprite:[CCSprite spriteWithFile:@"sprite_sheet.png" rect:CGRectMake(100,0,50,50)] 
                                                      target:self 
                                                    selector:@selector(onPlay:)];
[bg addChild:playBtn];
[menu addChild:bg];
[self addChild:menu];
4

1 に答える 1

2

画像の名前を引数として渡したい場合は、次のコードを使用してください。

CCMenuItem *playBtn = [CCMenuItemImage itemFromNormalImage:@"image.png"
                                             selectedImage:@"image_selected.png"
                                             disabledImage:@"image_disabled.png"
                                                    target:self
                                                  selector:@selector(onPlay:)];

CCSprite使用しているコンストラクターは、ではなく、を期待していNSStringます。


OK、あなたが答えを編集した後、私はもっとよく見て、あなたはのplayBtn子として持っていますbg。あなたはそれをすることはできません。の直接の子のみがCCMenuコールバックを送信できます。

[menu addChild:playBtn];

実際にこれを行うことをお勧めします:

CCMenuItem *playBtn = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithFile:@"sprite_sheet.png" rect:CGRectMake(0,0,50,50)] 
                                              selectedSprite:[CCSprite spriteWithFile:@"sprite_sheet.png" rect:CGRectMake(50,0,50,50)] 
                                              disabledSprite:[CCSprite spriteWithFile:@"sprite_sheet.png" rect:CGRectMake(100,0,50,50)] 
                                                      target:self 
                                                    selector:@selector(onPlay:)];

CCMenu* menu = [CCMenu menuWithItems:playBtn, nil];

CCSprite* bg = [CCSprite spriteWithFile:@"sprite_sheet.png" rect:CGRectMake(0,50,100,100)];

[self addChild:bg];
[self addChild:menu];
于 2012-10-20T08:42:14.837 に答える