Lab

Cocos2d-x:ボタンの作成(画像)

 Tag :  Published : 2013-10-9

Pocket

CCMenuItemImage、CCMenuを使用します。
デフォルト時とタップ時で画像が切り替わり、タップされた時にメッセージが出るようなボタンを作成します。
> Ver3.x : 『ボタンの作成(画像)』はこちら

1. ボタンの作成(CCMenuItemImage、CCMenu)

デフォルトでは1.png、タップ時に2.pngが表示されるボタンを作成します。

以下はHelloWorldクラスを利用した例です。

cocos2d-xのボタンデフォルト
デフォルト

cocos2d-xのボタンタップ時
タップ時

HelloWorldScene.h

class HelloWorld : public cocos2d::CCLayer
{
public:
    virtual bool init();  
    static cocos2d::CCScene* scene();
    CREATE_FUNC(HelloWorld);
private:
    //コールバック用関数myCallbackの準備
    void myCallback(CCObject* pSender);
};
    
HelloWorldScene.cpp

bool HelloWorld::init()
{
    if(!CCLayer::init())return false;
    
    //画面サイズを取得
    CCSize s = CCDirector::sharedDirector()->getWinSize();
    
    //メニューアイテムイメージの作成
    //1.png->デフォルトの画像 2.png->タップ時の画像 HelloWorld::myCallback->押した後の動作
    CCMenuItemImage *pBtnItem = CCMenuItemImage::create("1.png", "2.png", this, menu_selector(HelloWorld::myCallback));
    
    //メニューの作成 pBtnの中にpBtnItemを入れる
    CCMenu* pBtn = CCMenu::create(pBtnItem, NULL);
    
    //pBtnを画面中央に配置
    pBtn->setPosition(ccp(s.width*.5, s.height*.5));
    this->addChild(pBtn);

    return true;
}
    

まだmyCallbackを用意していないので、この時点ではエラーが出ます。

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

myCallbackを作成します。
タップすると”ボタンが押されました”とメッセージが出るようにします。

HelloWorldScene.cpp

void HelloWorld::myCallback(CCObject* pSender)
{
    CCLog("ボタンが押されました");
}
    

pageTop