cocos2d-x で CCMenu のコールバックメソッドにパラメータを渡すには
はじめに
- CCMenu でメニューを作る際に、メニューアイテムの数だけコールバックメソッドを書いているのが間抜けすぎたので、メニューのコールバックメソッドにパラメータを渡す方法を調べた。
コード
メニューアイテムの作成
- "MenuScene"という名前のシーンでメニューの作成
// メニューアイテムの作成 CCLabelTTF* label = CCLabelTTF::create("button", FONT_NAME, FONT_SIZE); CCMenuItemLabel* menuItem = CCMenuItemLabel::create(label, this, menu_selector(MenuScene::menuCallback)); menuItem->setPosition(ccp(size.width * 0.2, size.height * 0.7)); // コールバック側で読み込む値をタグにセットする menuItem->setTag(1);
コールバックメソッドの実装
void MenuScene::menuCallback(CCObject *sender) { CCMenuItem* menuItem = (CCMenuItem*)sender; int tag = menuItem->getTag(); /* なにか tag を使った処理 */ }