私はcocos2d-xシーンとボタンを持っています。 私はタッチイベントリスナーがコールバック関数でそれを提供追加追加しよう:ココス2d-xタッチイベントコールバックエラーを追加
preloadScene.h:
...
public:
virtual void Do(Touch* touch, Event* event);
...
preloadScene.cpp
bool Preload::init(){
...
auto button = ui::Button::create("assets/preload_button.png");
...
auto listener = EventListenerTouchOneByOne::create();
listener->onTouchEnded = CC_CALLBACK_2(Preload::Do, this);
button->addTouchEventListener(listener);
...
}
コンパイル中に私はこのエラーを得た: エラーC2893は、関数テンプレート「未知の型STDを専門に失敗しました::、(_Callable & &を呼び出します_Types & & ...) '
私はコールバックや使い方が間違っていることを理解しています。助けてください。
P.S:次の行は正常に機能しますが、このイベント処理コードを他の関数にカプセル化したいと考えています。
*button->addTouchEventListener(
[](Ref* sender, ui::Widget::TouchEventType type) {
switch (type) {
case ui::Widget::TouchEventType::BEGAN: {
CCLOG("touch began");
auto scene = MainMenu::createScene();
Director::getInstance()->popScene();
Director::getInstance()->replaceScene(scene);
}
break;
これは最も簡単な方法です。 –