Эффект одного объекта, проходящего через другой из-за большого движения за один временной шаг, называется tunneling .
Box2D использует Непрерывное обнаружение столкновений между динамическими и статическими объектами для решения этой проблемы. Тем не менее, ваш случай (динамический против динамического) не обрабатывается автоматически, поэтому это просто случайный бросок кубика, если ваши объекты оказались в сталкивающихся позициях в тот момент, когда оцениваются столкновения.
Из Box2d руководства :
Обычно ПЗС не используется между динамическими телами. Это сделано, чтобы сохранить
производительность разумная. В некоторых игровых сценариях вам нужны динамические тела
использовать CCD. Например, вы можете стрелять с высокой скоростью в
стек динамических кирпичей. Без ПЗС пуля может туннелировать
сквозь кирпичи.
Быстро движущиеся объекты в Box2D могут быть помечены как маркеры. Пули будут
выполнять ПЗС со статическими и динамическими телами. Вы должны решить
какие тела должны быть пулями на основе вашего игрового дизайна. Если вы решили
тело должно рассматриваться как пуля, используйте следующую настройку.
bodyDef.bullet = true;
Флаг маркера влияет только на динамические тела.
Box2D выполняет непрерывное столкновение последовательно, поэтому пули могут пропустить
быстро движущиеся тела.