Возможно, я что-то упустил, но не смог выяснить.
Физика работает нормально (см. видео, зеленые квадраты - это тела )
Однако динамическое тело не пересекается со статическим.
Вот мой соответствующий код, который создает тело и форму.
Возможно, я что-то упустил, но не смог выяснить. Физика работает нормально (см. видео, зеленые квадраты - это тела [youtube]RFkP0zuVm3U[/youtube]) Однако динамическое тело не пересекается со статическим. Вот мой соответствующий код, который создает тело и форму. [code] body_ptr body{nullptr, cpBodyFree}; std::unordered_map 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()]();
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()); [/code] Чего мне не хватает? Я искал, но в старых решениях используется функция, которой больше не существует.>