【问题标题】:cocos2dx with box2d contactlistener doesnt work带有 box2d 联系人监听器的 cocos2dx 不起作用
【发布时间】:2021-05-29 01:59:41
【问题描述】:

我在我的 cocos2dx v4 项目中使用 box2d 2.3.1physics 引擎。我的多边形形状是使用物理编辑器创建的。一切都正常碰撞,但联系人监听器不记录联系人。

这是我在 helloworld.h 中定义的联系人监听头

MyContactListener 类:公共 b2ContactListener
{
私人的 : 无效 BeginContact(b2Contact* 联系人); 无效 EndContact(b2Contact* 联系人); void PreSolve(b2Contact* contact, const b2Manifold* oldManifold);
void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse);

};

这是我在 helloworld.cpp 中的联系人监听器实现

void MyContactListener::BeginContact(b2Contact* 联系人) { std::cout

}

void MyContactListener::EndContact(b2Contact* 联系人) {

std::cout

}

void MyContactListener::PreSolve(b2Contact* contact, const b2Manifold* oldManifold) {

std::cout

}

void MyContactListener::PostSolve(b2Contact* contact, const b2ContactImpulse* impulse) {

std::cout

}

MyContactListener myContactListenerInstance;

以及我对世界的联系人监听器分配(在 helloworld.cpp init 中)

_rootWorld->getb2World()->SetContactListener(&myContactListenerInstance);

一切正常但它不记录冲突联系人

我的身体类别和位掩码值是

主体 A:位掩码:63,类别:1

body B:位掩码:63,类别:2

body C:位掩码:63,类别:4

body D:位掩码:63,类别:8

body E:位掩码:63,类别:16

body F:位掩码:63,类别:32

谁能帮忙?

【问题讨论】:

    标签: cocos2d-x box2d


    【解决方案1】:

    我通过将 std::cout 更改为 log("...") 解决了问题,我猜 cocos2dx 引擎改变了 std::cout 行为,所以我不打印任何东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      相关资源
      最近更新 更多