cocos2dx ui::Button 的addClickListener问题

今天编程时偶然遇到了一个问题,就是关于Button的addClickListener的参数问题,见代码

startBtn->addClickListener(CC_CALLBACK_1([]()
{
      //operator
},this));

但是这样是错的,

错误信息:项不会计算为接受2个参数的函数。感觉没错啊,难道是cocos2dx本身的问题??(原谅我的质疑)

百度到另外一种方法

startBtn->addClickListener(CC_CALLBACK_1(HelloWorld::callback,this));
//callbacak为类HelloWorld的成员函数

但突然间我想到我弄错了

#define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)

下面上正确代码

startBtn->addClickEventListener([](Ref*ref)
{
//
});
,好吧,其实是比较简单的问题,脑子一时转不过来弯来就容易出错。

具体为什么不能像第二个那样用,得好好了解c++11的特性了,但我讲不太清楚,就是感觉这样不对(因为编译通不过)。就不贻笑大方了


你可能感兴趣的:(cocos2dx ui::Button 的addClickListener问题)