Cocos2d 3.xにおけるbuttonの使用
Cocos 2 d-x 3.xにはcocosGUIのWidgetをcococos 2 d-x extensionのコントロールに置き換える傾向があり、Lambda式のようなC++11のいくつかの新しい特性が採用され始めた.次に、cococosGUIにおけるWidgetの使用およびイベントの追加を
cococosGUIのすべてのコントロールは
Touchイベント、PC側はマウスの
Clickイベント.
ここでの
コールバック関数のフォーマットは次のとおりです.
cococos 2 d-x 3.3 rc 0でテストした.
このドキュメントは長沙デイビッドキャンプ教育によって整理されています.
cocos2d::ui::Button
の使用で示す.cococosGUIのすべてのコントロールは
Widget
から継承され、ファイル名はiOS標準コントロールのような命名方法を採用しています.例えば、UIButton
、UITextField
などです.これらのコントロールもiOSのやり方を参考にしているはずなので、iOSアプリケーションの開発に詳しい人にとっては良いことです.UIButton
は、ユーザクリックイベントを提供するためのコントロールであり、画像および文字タイトルを表示することができ、異なる状態(NORMALおよびSELECTED)で異なる画像を表示することができる.ユーザーが(touchまたはclick)ボタンをクリックすると、イベントがトリガーされます.この動作は、ボタンにイベントリスナー(EventListener)を追加することでキャプチャできます.次に、ボタンを作成します.#include <CocosGUI.h> using namespace ui; // Button Button *btn = Button::create("normal_menu.png", "press_menu.png"); // , ( 、 、 ) btn->setTitleText("Go "); btn->setTitleFontSize(28); // btn->setPosition(Vec2(200, 200)); // Tag , , Widget , iOS UIView tag 。 btn->setTag(1002); // this->addChild(btn);
ボタンはモバイルプラットフォームとPC側で傍受するイベントが異なり、モバイル側は一般的に傍受するTouchイベント、PC側はマウスの
Clickイベント.
void addTouchEventListener(const ccWidgetTouchCallback& callback); void addClickEventListener(const ccWidgetClickCallback& callback);
ここでの
ccWidgetTouchCallback
はstd::function<void(Ref*,Widget::TouchEventType)>
タイプです.Lambda式またはコールバック関数を設定できます.//1. btn->addTouchEventListener(CC_CALLBACK_2(MenuScene::menuCallback, this)); //2. lambda []()->{} // btn->addTouchEventListener([=](Ref* pSender,Widget::TouchEventType type){ // log("%p->%d", pSender, type); // });
コールバック関数のフォーマットは次のとおりです.
void MenuScene::menuCallback(Ref* pSender, Widget::TouchEventType type) { Button *sender = (Button*)pSender; log("%d", sender->getTag()); }
cococos 2 d-x 3.3 rc 0でテストした.
このドキュメントは長沙デイビッドキャンプ教育によって整理されています.