我有一个由CCLabelTTF组成的菜单,现在我想在每一个都被单击/粘贴时调用一个函数。我只是想知道你是否可以用CCLabelTTF来做这件事,还是我必须用CCMenuItemLabel。另外,如果我必须使用CCMenu,可以有人解释如何安排菜单中的项目,因为我在这方面没有运气。谢谢。
发布于 2011-12-22 15:48:31
试试这段代码,它适用于CCMenuItemLabel
CCLabelTTF *lbl_Home = [CCLabelTTF labelWithString:@"HOME" fontName:@"verdana" fontSize:25];
CCLabelTTF *lbl_Home1 = [CCLabelTTF labelWithString:@"HOME" fontName:@"verdana" fontSize:25];
CCLabelTTF *lbl_Home2 = [CCLabelTTF labelWithString:@"HOME" fontName:@"verdana" fontSize:25];
CCMenuItemLabel *lbl1 = [CCMenuItemLabel itemWithLabel:lbl_Home target:self selector:@selector(homeClicked1)];
CCMenuItemLabel *lbl2 = [CCMenuItemLabel itemWithLabel:lbl_Home1 target:self selector:@selector(homeClicked2)];
CCMenuItemLabel *lbl3 = [CCMenuItemLabel itemWithLabel:lbl_Home2 target:self selector:@selector(homeClicked3)];
// Your Menu creation starts here
CCMenu *mnu = [CCMenu menuWithItems:lbl1,lbl2,lbl3,nil];
[mnu setPosition:ccp(winSize.width/2+100,winSize.height/2+100)];
[mnu alignItemsVertically]; // as u need either vertical or horizontal alignment
[self addChild:mnu];发布于 2011-12-23 00:00:14
下面是我刚刚从我当前的项目中提取的一些代码,使用了块:
CCMenuItemLabel *myLabel = [CCMenuItemLabel itemWithLabel:[CCLabelTTF labelWithString:@"LabelString" fontName:@"Times New Roman" fontSize:20]
block:^(id sender) {
// execute code here...
}];对于元素的排序,当您将它们添加到菜单时,如下所示:
CCMenu *menu = [CCMenu menuWithItems:button1, button2, button3, button4, nil];您将它们放入其中的顺序就是它们在屏幕上显示的顺序。
发布于 2011-12-23 17:37:32
您可以垂直或水平对齐CCMenu中的项目。除非修改CCMenu类(或子类),否则CCMenu不支持类似网格的表格布局。
我不确定这段代码是否还能工作(它已经有2年历史了),但我曾经出于这个原因开发过一个CCMenuGrid。
https://stackoverflow.com/questions/8600473
复制相似问题