我有一個cocos2d-x場景和Button。 我嘗試添加觸摸事件偵聽器添加它提供的回調函數:cocos 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 & &, _類型& & ...)'
我明白,回調或我使用它的方式有問題。請幫忙。
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;
這似乎是最簡單的方法來做到這一點。 –