【cocos2dx】CCMenuクラスの一歩進んだ使い方。

【cocos2dx】CCMenuクラスの一歩進んだ使い方。
   

cocos2dxでは、CCMenuクラスを利用すれば簡単にボタンが作成できます。
私が今作っているアプリでも使っています。
今回は、このCCMenuクラスを少し深く勉強してみましょう。

selected()

CCMenuItemクラスに、selected()というメソッドがあります。
これを利用すれば、CCMenuクラスの画像が常に選択されたままで表示できます。


私はこれでナビゲーションで今いるレイアーのボタンを「選択中」としてわかるように利用しています。

2014 3 8 blog1


activate()

続きましては、activate()です。
このメソッドを呼び出すと、CCMenuItemクラスで指定されたコールバック関数を呼び出せます。



CCMeneItemのタグについて

CCMeneItemクラスとして利用している場合、個別のメニューに関してCCActionを使ってアニメーションさせたい場合、予めタグを割り振っておくと便利です。


このようにすれば、後から特定のCCMenuItemクラスを取り出すことができます。


CCMeneItemのタグを使った便利なコールバック関数の使い方

同じようなメニューをたくさん表示させ、ボタンの反応は個別に変えたい。
アイテムの一覧画面などでよく利用されている実装です。

これを先ほどのタグを使ってCCMenuクラスで実現することができます。
[参考 – サウザンドメモリー]
2014 3 8 blog2 5


実装方法

まずは、CCMenuを作成します。
たくさんCCMenuItemクラスが必要ですので、for文を使ったほうがいいでしょう。

ここで注意をしていただきたいのが、CCMenuItemクラスのtargetの所(第3引数)です。
ここにはCCMenuItemクラスを指定して下さい。

タグの設置

個別のCCMenuItemにタグを割り振ります。


今回は、for文のjを利用しています。

コールバックメソッドを作成

CCMenuクラスは通常通り作成します。
コールバックメソッドは少し工夫が必要です。


このようにすれば、同じコールバック関数でも個別にメニューのタグを取り出せます。
このタグを利用して、反応を変えてあげれば良いのです。

注意点

CCMenuItemクラスのtargetを変更したことによって、コールバック関数内では、グローバル変数などが利用できません。
この点注意して下さい。

Related Posts Plugin for WordPress, Blogger...