【cocos2dx】MenuItemクラスを改造して、ボタンに触った時にアクションを実行する方法

cocos2dxにあるMenuクラスは、簡単にボタンが実装できます。 通常は、このボタンを離した時にアクションが実行されます。 これでも十分なのですが、ボタンを触った時に何かしらのアクションを実行したと思い、実装をしてみました。

ボタンに触れた時にアクションを起こす

これは、前日利用方法を知った「コールバック」を利用します。 「コールバック」を利用すれば、簡単に実装できました。

MenuItemクラスを改造する

今回は直接MenuItemクラスをいじりましたが、本当なら専用のクラスを別途作った方が良いと思います。 ですので、コードを参考にしてください。 [c] //MenuItem.h

public: void setTouchMenuCallback( const std::function<void(cocos2d::Ref*)> &callback );

protected: std::function<void(Ref*)> m_callback;

//MenuItem.cpp void MenuItem::setTouchMenuCallback(const std::function &callback) { m_callback = callback; }

void MenuItem::selected() {

//コールバックに連絡
if (m_callback) m_callback(this);

_selected = true;

}

[/c]

上記のように、ボタンが選択(selected)された時にコールバックを送るよう実装をします。

利用する

実際に利用する場合は、Menuを作成する時にコールバックを受け取る関数を実装します。 [c]

menuItem1->setTouchMenuCallback({

 //ボタンに触れた時の処理を記載する        

});

[/c]

これで完了です。

Oculus Riftでオレの嫁と会える本 UnityとMMDモデルで作る初めてのバーチャルリアリティOculus Riftでオレの嫁と会える本 UnityとMMDモデルで作る初めてのバーチャルリアリティ
桜花一門,ゆーじ

翔泳社 2014-12-16
売り上げランキング : 1445

Amazonで詳しく見る