Как получить силу, воздействующую на тело, когда в Пимунке происходит столкновение - PullRequest
1 голос
/ 10 марта 2020

Я пытаюсь сделать игру, в которой игрок стреляет по объектам, и когда «пуля» попадает, объекты должны исчезнуть. Правильно, это работает нормально, но сейчас я пытаюсь сделать так, чтобы объекты исчезали, только если пуля дает определенное количество силы / импульса. Кто-нибудь знает, как это сделать?

В настоящее время, чтобы получить коллизии, которые я делаю:

collision_handler = space.add_collision_handler(1, 2)
collision_handler.begin = collision_happened

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Это из примеров C, но очень актуально: https://github.com/slembcke/Chipmunk2D/blob/master/demo/ContactGraph.c

Пара замечаний:

  • Импульс в единицах импульса, length / delta_time дает вам силу.
  • Для пуль вы, вероятно, захотите вместо этого энергию кинети c. (.total_ke in pymunk)
0 голосов
/ 11 марта 2020

Вы должны использовать обратный вызов post_solve. В этом обратном вызове вы можете проверить, больше ли значение арбитра.total_impulse, чем какое-либо значение. В зависимости от вашей логики c вы также можете проверить, что значение арбитра.is_first_contact равно true.

...