Chipmunk物理引擎中动态物体与静态物体无碰撞问题求助
Chipmunk物理引擎中动态物体与静态物体无碰撞问题求助
我肯定是漏了什么细节,但就是找不到问题所在😅
物理系统整体运行是正常的(可以看视频,绿框代表物理体),但动态物体就是无法和静态物体发生碰撞。
以下是我创建物理体和形状的相关代码:
body_ptr body{nullptr, cpBodyFree}; std::unordered_map<bodytype, std::function<void()>> mapping = { {bodytype::stationary, [&body]() { body = body_ptr(cpBodyNewStatic(), [](cpBody *body) { cpBodyFree(body); }); }}, {bodytype::kinematic, [&body]() { body = body_ptr(cpBodyNewKinematic(), [](cpBody *body) { cpBodyFree(body); }); }}, {bodytype::dynamic, [&body, &size]() { body = body_ptr(cpBodyNew(1.0, cpMomentForBox(1.0, size.width(), size.height())), [](cpBody *body) { cpBodyFree(body); }); }} }; const auto p = j["physics"]; mapping[p["type"].get<bodytype>()](); auto shape = shape_ptr(cpPolyShapeNew(body.get(), n, vertices, cpTransformIdentity, 0.0), [](cpShape *shape) { cpShapeFree(shape); }); cpShapeSetFriction(shape.get(), p.value("friction", 0.5f)); cpShapeSetElasticity(shape.get(), p.value("elasticity", 0.3f)); cpSpaceAddShape(_world->space().get(), shape.get()); cpSpaceAddBody(_world->space().get(), body.get());
有没有大佬能帮我看看我到底漏了什么?我也搜过相关问题,但找到的旧解决方案用到的函数现在已经不存在了...
备注:内容来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

