Lab

Cocos2d-x v3:ボタンの作成(スプライト)

 Tag :  Published : 2014-9-18

Pocket

MenuItemSprite、Menuを使用します。
スプライトを使ったボタンを作成します。
> Ver2.x : 『ボタンの作成(スプライト)』はこちら

1. ボタンの作成(MenuItemSprite、Menu)

2つのスプライトを組み合わせてボタンを作成します。
一つ目は半透明(タップ前)、もう一つは不透明(タップ後)にしてみます。

    //画面サイズを取得
    Size s = Director::getInstance()->getVisibleSize();

    //タップ前のスプライト
    auto pNormalSprite = Sprite::create("1.png");
    pNormalSprite->setOpacity(100);
    
    //タップ時のスプライト
    auto pSelectedSprite = Sprite::create("1.png");
    
    //メニューアイテムの作成
    auto pBtnItem = MenuItemSprite::create(pNormalSprite, pSelectedSprite, CC_CALLBACK_1(HelloWorld::myCallback, this));
    
    //メニューの作成 pMenuの中にpBtnItemを入れる
    auto pMenu = Menu::create(pBtnItem, NULL);
    
    //pMenuを画面中央に配置
    pMenu->setPosition(Vec2(s.width*.5, s.height*.5));
    this->addChild(pMenu);
    

2. タップ時のコールバックを作成

myCallbackを作成します。
タップするとログを返します。

void HelloWorld::myCallback(Ref* pSender)
{
    log("タップされました。");
}
    

3. 他の書き方

先ほどと同じ内容ですが、別の書き方です。

    //画面サイズを取得
    Size s = Director::getInstance()->getVisibleSize();

    //タップ前のスプライト
    auto pNormalSprite = Sprite::create("1.png");
    pNormalSprite->setOpacity(100);
    
    //タップ時のスプライト
    auto pSelectedSprite = Sprite::create("1.png");
    
    //メニューアイテムの作成
    auto pBtnItem = MenuItemSprite::create(
        pNormalSprite,
        pSelectedSprite,
        [this](Ref *pSender){
            log("タップされました。");
        }
    );

    //メニューの作成 pMenuの中にpBtnItemを入れる
    auto pMenu = Menu::create(pBtnItem, NULL);
    
    //pMenuを画面中央に配置
    pMenu->setPosition(Vec2(s.width*.5, s.height*.5));
    this->addChild(pMenu);
    

pageTop