【cocos2dx】CCMenuクラスで「ON・OFFボタン」を作成する

【cocos2dx】CCMenuクラスで「ON・OFFボタン」を作成する
   


音楽の出るアプリでは、音を鳴らす鳴らさないの調整ができれば、いちいちスマートフォンの音量を触らなくてもいいです。
今回は、そのような機能をCCMenuクラスにあるCCMenuItemToggleクラスの利用方法を紹介します。

「ON・OFFボタン」を実装する

まずは、通常のメニューと同じように、ボタンのスプライトを用意します。
ただ、一つのボタンに対して、4つ画像を用意しなくてはいけません。
  • ボタンがONの時の画像
  • ボタンがONの時に押された時の画像
  • ボタンがOFFの時の画像
  • ボタンがOFFの時に押された時の画像


それぞれ画像を用意するか、もしくは画像をsetColor()などを使って色を変えるかなどします。
このような感じで用意します。

ONOF



    CCSprite *OnButton= CCSprite::create("sound0n.png");
    CCSprite *OnButton2= CCSprite::create("sound0n.png");
    CCSprite *OffButton= CCSprite::create("sound0ff.png");
    CCSprite *OffButton2= CCSprite::create("sound0ff.png");

    OnButton ->setColor(ccc3(169,169,169));
    OffButton ->setColor(ccc3(169,169,169));



ボタンを作成する

まずは、CCMenuItemSpriteクラスを使ってONOFFのボタンを作成します。

    //ONのボタン
    CCMenuItemSprite *menuImage1 = CCMenuItemSprite::create(OnButton, OnButton2,NULL);

    //OFFのボタン
    CCMenuItemSprite *menuImage2 = CCMenuItemSprite::create(OffButton, OffButton2,NULL);




この2つのボタンを「ON・OFFボタン」にするために、CCMenuItemToggleクラスを利用します。
2つボタンが用意できれば、簡単に作成できます。

    
    CCMenuItemToggle *toggle = CCMenuItemToggle::createWithTarget(this, menu_selector(OpeningLayer::toggleAction), menuImage1,menuImage2,NULL);




CCMenuItemImageクラスと同じように、ボタンを押した時に呼び出すメソッドを指定できるのですが、順番が少し違いますので注意して下さい。
後は、Positionを設定して、CCMenuクラスを作成すれば完成です。

    //ボタンの場所
    toggle->setPosition(100,100);


    //メニューを作成
    CCMenu *soundButton = CCMenu::create(toggle,NULL);
    soundButton->setPosition(CCPointZero);
    this->addChild(soundButton);



これで完成です。
このような感じのボタンになります。

2013-9-9-ffds.png

Related Posts Plugin for WordPress, Blogger...