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

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

RSS Feed

cocos2d入門編 〜ボタンの作り方(CCMenuItem, CCMenu)〜

0 Comments
Posted by Kuro on 2013/01/07

cocos2dでのボタンの作り方を紹介します。

まずCCSpriteや文字列を使ってCCMenuItemを作ります。
そして作ったアイテムからCCMenuを作り、最後にCCLayerにaddChildします。
CCMenuItem→CCMenu→CCLayerというように重ねていくということです。

CCMenuItemは複数作ることができ、CCMenuはそれらのitemを一つのmenuとしてまとめます。
面倒ですがCCMenuItemがひとつしかなくても同じようにして作る必要があります。

CCSpriteからボタンを作る

Stringからボタンを作る

コード解説

これらのメソッドを使うと、各itemを綺麗に整列させることができます。
alignItemsHorizontallyWithPaddingは水平方向に整列
alignItemsVerticallyWithPaddingは垂直方向に整列
引数で何pixel離れて整列させるかを指定します。

ここでは2種類の方法でitemを作っています。

前者、selector:@selector(pushSpriteButton:)の場合はカッコのなかにメソッド名を書き、引数があるときは末尾に:(コロン)を追加します。引数はtarget:selfのようにしてtargetで指定します。

後者、block:^(id sender){[self pushSpriteButton:sender];}の場合は{}(ブレイス)で囲まれたなかに複数のメソッドを書いたり変数に値を代入したりすることができてとても便利です。

selectedImageに別の画像を指定することで、ボタンが押されたときに画像を変更させることができます。

以下のように”spr_s.color = ccGRAY”と指定してあげればボタンが押されたときに画像をグレーがかったような色合いにすることができます。

追記 – ボタン二度押しを防止する –

ボタンの二重押しを禁止する処理を加えようと”item2.isEnabled=NO;”をブロック構文のなかに書いたらEXE_BAD_ACCESSで落ちました。
ローカル変数をBlock構文内で変更する場合は変数の宣言時に”__block”を付ける必要があるようです。

これでボタンの二重押下は防げるようになりました。

CCButton(おまけ)

CCButtonなるものを作ってみました。
どうしてもTouchdownが使いたいなんてときに役立ちます。
cocos2d – CCButton –

スポンサードリンク


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

0 Comments

コメントを残す

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

Pingbacks / Trackbacks

スポンサードリンク

Popular Posts