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
void MenuItem::selected() {
//コールバックに連絡
if (m_callback) m_callback(this);
_selected = true;
}
[/c]
上記のように、ボタンが選択(selected)された時にコールバックを送るよう実装をします。
利用する
実際に利用する場合は、Menuを作成する時にコールバックを受け取る関数を実装します。 [c]
menuItem1->setTouchMenuCallback({
//ボタンに触れた時の処理を記載する
});
[/c]
これで完了です。
Oculus Riftでオレの嫁と会える本 UnityとMMDモデルで作る初めてのバーチャルリアリティ 桜花一門,ゆーじ 翔泳社 2014-12-16 売り上げランキング : 1445 Amazonで詳しく見る |