Cocos2d: CCLabelTTF вызывать функцию? - PullRequest
1 голос
/ 22 декабря 2011

У меня есть меню, которое состоит из CCLabelTTF с, и теперь я хочу вызывать функцию, когда каждая из них нажата / нажата. Мне просто интересно, если вы можете сделать это с CCLabelTTF или мне нужно CCMenuItemLabel. Также, если мне придется использовать CCMenu, может кто-нибудь объяснить, как расположить пункты меню, так как мне не повезло в этом отношении. Спасибо.

Ответы [ 3 ]

4 голосов
/ 22 декабря 2011

Попробуйте этот код, он работает для 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];
0 голосов
/ 23 декабря 2011

Вы можете выравнивать элементы в CCMenu по вертикали или по горизонтали. CCMenu не поддерживает макет таблицы в виде сетки, если вы не измените класс CCMenu (или не создадите его подкласс).

Не уверен, что этот код все еще работает (ему уже 2 года), но однажды я разработал CCMenuGrid именно по этой причине.

0 голосов
/ 22 декабря 2011

Вот код, который я только что извлек из моего текущего проекта, используя блоки:

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];

Порядок, в который вы их вводите, соответствует порядку, который они показывают на экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...