在网上下在了一份代码,我使用3.0的rc2进行编译,发现在物理碰撞检测的代码中,调用cc_callback_2函数会导致编译出错,代码如下:
auto contactListener = EventListenerPhysicsContact::create();
contactListener->onContactBegin = CC_CALLBACK_2(GameLayer::onContactBegin, this);
this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(contactListener, this);
其中,在头文件中的定义为这样:bool onContactBegin(EventCustom event, const PhysicsContact& contact);
onContactBegin的实现就不贴了,这样在vs2012的环境中编译的时候,出现不能讲参数2从cocos2d::PhysicsContact转换为cocos2d::EventCustom类型,如果我要是把改用CC_CALLBACK_1,并且把第一个参数EventCustom* event去掉,这样就是可以编译通过的,但是第二种情况,我在网上看到的其他代码,也并没有错误啊…现在这个问题有点疑惑,一个新手,直接学习的3.0+的版本.知道这个问题的,麻烦给一个提示,多谢。。
附加,我改成一个参数以后,运行起来,发现回调函数并没有被执行,查看了网上,大部分人都说在PhysicsBody中添加setContactTestBitmask(0xFFFFFFFF);这个东西,我添加了也没有效果。如果知道这个问题的,也随便给个参考…
