Бурундук без столкновенийC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Бурундук без столкновений

Сообщение Anonymous »

Возможно я что-то упустил, но не смог выяснить.
Физика работает нормально (см. видео, зеленые квадратики - это тела )
Однако динамическое тело не пересекается со статическим.
Вот мой соответствующий код, который создает тело и форму.

Код: Выделить всё

  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());
Чего мне не хватает?
Я искал, но старые решения используют функцию, которой больше не существует.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -collision
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»