【cocos2dx】CCMenuクラスの一歩進んだ使い方。albatrus.com">">">HOME>cocos2d>【cocos2dx】CCMenuクラスの一歩進んだ使い方。【cocos2dx】CCMenuクラスの一歩進んだ使い方。|cocos2dツイートcocos2dxでは、CCMenuクラスを利用すれば簡単にボタンが作成できます。私が今作っているアプリでも使っています。今回は、このCCMenuクラスを少し深く勉強してみましょう。selected()CCMenuItemクラスに、selected()というメソッドがあります。これを利用すれば、CCMenuクラスの画像が常に選択されたままで表示できます。*item;item->selected();私はこれでナビゲーションで今いるレイアーのボタンを「選択中」としてわかるように利用しています。activate()続きましては、activate()です。このメソッドを呼び出すと、CCMenuItemクラスで指定されたコールバック関数を呼び出せます。*item;item->activate();CCMeneItemのタグについてCCMeneItemクラスとして利用している場合、個別のメニューに関してCCActionを使ってアニメーションさせたい場合、予めタグを割り振っておくと便利です。*item;item->setTag(1);このようにすれば、後から特定のCCMenuItemクラスを取り出すことができます。同じようなメニューをたくさん表示させ、ボタンの反応は個別に変えたい。アイテムの一覧画面などでよく利用されている実装です。これを先ほどのタグを使ってCCMenuクラスで実現することができます。実装方法まずは、CCMenuを作成します。CCMenuItemクラスが必要ですので、for文を使ったほうがいいでしょう。menu_selector(PerformanceLayer::showWindow));//////////////////////}ここで注意をしていただきたいのが、CCMenuItemクラスのtargetの所(第3引数)です。ここにはCCMenuItemクラスを指定して下さい。個別のCCMenuItemにタグを割り振ります。CmenuSprite->setTag(j);1menuSprite->setTag(j);今回は、for文のjを利用しています。コールバックメソッドを作成CCMenuクラスは通常通り作成します。コールバックメソッドは少し工夫が必要です。item->getTag();}このようにすれば、同じコールバック関数でも個別にメニューのタグを取り出せます。このタグを利用して、反応を変えてあげれば良いのです。注意点CCMenuItemクラスのtargetを変更したことによって、コールバック関数内では、グローバル変数などが利用できません。この点注意して下さい。ツイートalbatrus.comの更新情報を以下のサービスで配信しています。次の記事Unityで、某会社のiOS/Androidのゲームアプリを作成しています。個人でもアプリを開発していましたが、現在は休養中。エフェクト,3DCGなど演出面を今後やっていきたいと思っています。@albatrus_jpさんのツイート個人的にcocos2dxを勉強するサイトを作成しています。