2013年1月19日土曜日

【cocos2d】CCMenuでとりあえずボタンを押してる感を出す

CCMenuでとりあえずボタンを押してる感を出す方法をメモで。

やり方

ボタンを作るときは、おそらく、CCMenuItemSpriteクラスのitemFromNormalSprite:selectedSprite:disabledSprite:target:selector:メソッドで画像を設定するのですが、selectedSprite引数とdisabledSprite引数に入れるCCSpriteのopacityを弄ることでなんとなく押されてる感がでます。

CCSprite *normalSprite = [CCSprite spriteWithFile:@"btn.png"];
CCSprite *selectedSprite = [CCSprite spriteWithFile:@"btn.png"];  //こいつの
selectedSprite.opacity = 0x7f; // opacityを弄る。半透明に
CCSprite *disabledSprite = [CCSprite spriteWithFile:@"btn.png"];  //こいつの
disabledSprite.opacity = 0x7f; // opacityを弄る。半透明に

CCMenuItemSprite *menuItem = [CCMenuItemSprite 
    itemFromNormalSprite:normalSprite 
    selectedSprite:selectedSprite 
    disabledSprite:disabledSprite 
    target:self 
    selector:@selector(method:)];

CCMenu *menu = [CCMenu menuWithItems:menuItem, nil];
    :
    :

画像を作るのが面倒なときなどに(笑)

追記 : 2013/01/25

以下のように色を変更したほうがなんとなくそれっぽくなります。
selectedSprite.color = ccc3(105, 105, 105);
disabledSprite .color = ccc3(105, 105, 105);

追記 : 2013/02/20

以下のように押した際にポジションを変更するという方法もよさそうです(参考)。
selectedSprite.position = ccp(2, -2);

参考記事

CCMenuでラベル付きボタン、長押しボタン #cocos2d_2011_adcal - myb design

0 件のコメント:

コメントを投稿