1

したがって、メイン メニューに ccMenu が必要です。align Vertical と alignItemsInColumns を試してみましたが、これらのオプションはすべてメニュー内の項目を中央に配置します。次のようなものが必要な場合:

題名

 Option 1 has a very long name
 Option 2 is short
 Shorter

これの代わりに:

題名

Option 1 has a very long name
     Option 2 is short
          Shorter

cocos2dでこれを達成するにはどうすればよいですか? 助けてくれてありがとう。

編集:

このコードを使用してみましたが、次の結果が得られました。

CCLabelTTF * sin = [CCLabelTTF labelWithString:@"Single Player" dimensions:CGSizeMake(120,    25) alignment:UITextAlignmentLeft fontName:font fontSize:20];
CCMenuItem * item1 = [CCMenuItemLabel itemWithLabel:sin target:self selector:@selector(goToSinglePlayer:)];

CCLabelTTF * spl = [CCLabelTTF labelWithString:@"Splitscreen" dimensions:CGSizeMake(100, 25) alignment:UITextAlignmentLeft fontName:font fontSize:20];
CCMenuItem * item2 = [CCMenuItemLabel itemWithLabel:spl target:self selector:@selector(goToSplitscreen:)];

CCLabelTTF * ach = [CCLabelTTF labelWithString:@"Achievements" dimensions:CGSizeMake(130, 25) alignment:UITextAlignmentLeft fontName:font fontSize:20];
CCMenuItem * item3 = [CCMenuItemLabel itemWithLabel:ach target:self selector:@selector(goToAchievements:)];

CCLabelTTF * str = [CCLabelTTF labelWithString:@"Store" dimensions:CGSizeMake(50, 25) alignment:UITextAlignmentLeft fontName:font fontSize:20];
CCMenuItem * item4 = [CCMenuItemLabel itemWithLabel:str target:self selector:@selector(goToStore:)];

CCLabelTTF * set = [CCLabelTTF labelWithString:@"Settings" dimensions:CGSizeMake(80, 25) alignment:UITextAlignmentLeft fontName:font fontSize:20];
CCMenuItem * item5 = [CCMenuItemLabel itemWithLabel:set target:self selector:@selector(goToSettings:)];

CCMenu * mainMenu = [CCMenu menuWithItems:item1, item2, item3, item4, item5, nil];

[mainMenu setColor:ccBLACK];
[mainMenu alignItemsVerticallyWithPadding:10];
mainMenu.position =  ccp(size.width/6, size.height/2);
[self addChild:mainMenu];

ゲーム画面

何もしなかったようです。コードの何が問題になっていますか?

4

3 に答える 3

4

より一般的な解決策 (CCLabel を使用する必要がない) は、アンカー ポイントを調整してから、垂直方向に揃えることです。

CCMenuItem * testItem = ...
testItem.anchorPoint = ccp(0, 0.5f);
[testItem alignItemsVertically]
于 2012-08-10T03:40:45.290 に答える
4

CCMenuItemLabel アイテムでメニューを作成します。CCLabelTTF を使用して各ラベルを作成し、左揃えと既知の寸法を指定します。menuItems をメニューに追加すると、すべてが同じ寸法であれば整列します。

追加した :

 CGSize label = CGSizeMake(160., 45.); 
 CCLabelTTF *label1 = [CCLabelTTF labelWithString:@"Option1 for example" 
                                       dimensions:size 
                                        alignment:UITextAlignmentLeft
                                         fontName:@"pickYourOwnFont" fontSize:16.];

 CCLabelTTF *label2 = [CCLabelTTF labelWithString:@"Option2 below option 1" 
                                       dimensions:size 
                                        alignment:UITextAlignmentLeft 
                                         fontName:@"pickYourOwnFont" fontSize:16.];
CCMenuItem * item1 = [CCMenuItemLabel itemWithLabel:label1];
CCMenuItem * item2 = [CCMenuItemLabel itemWithLabel:label2];
CCMenu * leftAlignedMenu=[CCMenu menuWithItems:item1,item2,nil];

ラベル (色など) と menuItem (コールバック ターゲットとセレクター) に好きなプロパティを設定できます。

于 2012-05-06T00:53:39.957 に答える
2
CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello World"
                                     dimensions:CGSizeMake(480, 100)
                                      alignment:UITextAlignmentLeft
                                       fontName:@"Marker Felt"
                                       fontSize:64];

CCMenuItemLabel *labelItem = [CCMenuItemLabel itemWithLabel:label
                                                     target:self
                                                   selector:@selector(labelPressed)];

このように使用してください...これが役立つことを願っています..:)

于 2012-05-06T06:22:25.903 に答える