Cocos2d-x 3.0中 物理碰撞检测中onContactBegin回调函数不响应问题

在Cocos2d-x 3.0中,作者遇到onContactBegin回调函数不响应的问题。文章详细介绍了这个问题的原因,涉及到PhysicsBody和PhysicsWorld的API,并提醒读者查阅3.2版本的API。问题的关键在于CategoryBitmask、ContactTestBitmask和CollisionBitmask的逻辑运算。默认情况下,虽然物体能碰撞,但接触事件不会触发。通过修改掩码值,确保两者逻辑与结果不等于0,可以解决此问题。
摘要由CSDN通过智能技术生成

好吧,其实这篇也是临时冒出来的,最近朋友要做个物理游戏,以前做物理还是用box2d,呃,确实要花些功夫才能搞懂其中的精髓,但是听讲这套引擎重新封装了一次,要容易很多,所以就简单尝试了一下,感觉确实要简单不少,不过在这其中还是遇到了些问题,首先就来说说onContactBegin这个回调函数响应问题。


先说说情况,简单做了一个打砖块的游戏,前面一切都很顺利,只是做到碰撞检测的时候,发现回调函数弄死都不调用。开始我以为函数写错了,后来查了api,testCpp都没有错,在3.0的api中,没有关于PhysicsBody,PhysicsWorld这些类的说明,所以大家想查移步到3.2的api中吧。


onContactBegin函数的参数就一个,

bool onContactBegin(PhysicsContact& contact),这和3.0beta版本又有些不同,以前是2个,所以在添加事件监听的时候,不要写错,like this,

auto contactListener = EventListenerPhysicsContact::create();
contactListener->onContactBegin = CC_CALLBACK_1(HelloWorld::onContactBegin, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(contactListener, this);

回调函数是在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值