Learn iPhone, iOS, Objective-c, Swift, cocos2dx, Unity and ….?

iOSやAndroid開発でのエラー解決法や便利tipsのメモ

RSS Feed

cocos2d 〜 ボタン(CCMenuItem)をグリッド状に整列させる方法 〜

0 Comments
Posted by Kuro on 2013/02/14

cocos2dだとInterface Builderがないのでボタンの配置は座標で指定しなくてはなりません。

CCMnueItemはposition指定せずにCCMenuをposition指定してalignItemsHorizontallyWithPaddingかalignItemsVerticallyWithPaddingで間隔を調整するというのが一般的な使い方かと思います。

この方法だと水平か垂直どちらか一列しか作れません。
もっと自由にボタンを配置したい場合はCCMenuを複数作らなくてはなりません。

ここではCCMenuを複数使うことなくボタンをグリッド状(4*4)に整列させる方法を紹介します。

ccmenuitem_grid_align
ボタンの作り方については「cocos2d入門編 〜ボタンの作り方(CCMenuItem, CCMenu)〜」を参照してください。

CCMenuのpositionを(0,0)、for文の二重ループでCCMenuItemの座標指定で整列

menuのポジションを(0,0)に指定すればCCMenuItemで指定したpositionをそのまま反映させることができます。
この方法を使えばCCMenuItemのpositionをCCSpriteを配置するときのように自由に設定してから1つのmenuにまとめることができます。
CCMenuItemはfor文の二重ループを使って整列させています

alignItemsInColumnsを使って整列

下のサンプルではコメントアウトしてありますがalignItemsInColumnsを使えば簡単にグリッド状に整列させることができます。
alignItemsInColumnsの引数にはint型ではなくNSNumber型を指定してください。
最後はnil締めです。
ちなみにpadding指定して間隔を調整するということはできないようです。
(一応「CCMenuItem Positioning with alignItemsInColumns:」でpaddingを使えるようにメソッドを書き換える方法が紹介されていますがそこまでしてalignItemsInColumns使う価値はそれほどないかと思います。)

サンプルコード

参考サイト:CCMenuの座標を自由に決める

スポンサードリンク


You can leave a comment, or trackback from your own site.

0 Comments

You can be the first to comment!

コメントを残す

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

スポンサードリンク

Popular Posts