[iOS][cocos2d]メニューのアイテムを並べた際にアイテム同士の間隔を空けたい場合

「ジョジョォォーcocos2dは面白いぞォォォ!!」
ということでいきなり「cocos2d」の話題です。ゲーム作ってます。

cocos2dの説明は割愛し、いきなり本題に入りますが、ゲームのタイトルや設定画面などで重宝するメニュー用のクラス「CCMenu」ですが、複数の項目を使用する場合には図のように縦か横に並べますよね。その際に手動で位置調整をしてもいいのですが、簡単な方法がありますので紹介したいと思います。

縦にCCMenuITemを並べる場合には「alignItemsVerticallyWithPadding」、横の場合には「alignItemsHorizontallyWithPadding」というそのまんまの名前のメソッドがありますので、これを使うことで自動で並べてくれます。Paddingなしの「alignItemsVertically」「alignItemsHorizontally」もありますが、アイテム同士の間隔が詰まりすぎてしまうので、こちらを使う機会はあまりないと思います。

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

ちなみに自分で間隔を指定できない「alignItemsVertically」を使用した場合には下図のような感じになります。まあ、これはこれでいいんではと思わなくもないですが、もうちょっと間隔を空けたいなぁと思ったら「alignItemsVerticallyWithPadding」を使うといいと思います。

メニュー表示サンプル

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>