CCMenuITemを縦横等間隔に並べる
cocos2d(cocos2d-x)でゲームのタイトルや設定画面などで重宝するメニュー用のクラス「CCMenu」ですが、複数の項目を使用する場合には上図のように縦か横に並べることがほとんどだと思います。
その際に手動で位置調整をしてもいいのですが、簡単な方法がありますので紹介したいと思います。
縦にCCMenuITemを並べる場合: alignItemsVerticallyWithPadding
横にCCMenuITemを並べる場合: alignItemsHorizontallyWithPadding
というそのまんまの名前のメソッドがありますので、これを使うことで自動で並べてくれます。
Paddingなしの「alignItemsVertically」「alignItemsHorizontally」もありますが、アイテム同士の間隔が詰まりすぎてしまうので、こちらを使う機会はあまりないと思います。
cocos2d
CGSize size = [[CCDirector sharedDirector] winSize];
CCMenu* menu = [CCMenu menuWithItems:itemStart, itemHowtoplay, nil];
menu.position = ccp(size.width / 2 , size.height / 2);
[menu alignItemsVerticallyWithPadding:32.0f];
CGSize size = [[CCDirector sharedDirector] winSize];
CCMenu* menu2 = [CCMenu menuWithItems:itemGameCenter, itemTwitter, itemFacebook, nil];
menu2.position = ccp(size.width / 2 , size.height / 3);
[menu2 alignItemsHorizontallyWithPadding:64.0f];
cocos2d-x
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCMenu* pMenu = CCMenu::create(pStartItem, pStartRecord, pEtcGameItem, NULL);
pMenu->setPosition(ccp(winSize.width / 2, winSize.height / 2));
pMenu->alignItemsVerticallyWithPadding(30.0f);
ちなみに間隔を指定しない「alignItemsVertically」を使用した場合には下図のような感じになります。まあ、これはこれで悪くはないと思わなくもないですが、もうちょっと間隔を空けたいなぁと思ったら「alignItemsVerticallyWithPadding」を使うといいと思います。
Author And Source
この問題について(CCMenuITemを縦横等間隔に並べる), 我々は、より多くの情報をここで見つけました https://qiita.com/yokada3/items/b699bd4a26638e9815ed著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .