Сначала включите отладку

Половина «багов физики» — неверные размеры тела. Включите this.physics.world.createDebugGraphic() и смотрите прямоугольник, а не картинку спрайта. Часто якорь в центре, а тело осталось от левого верхнего угла.

Collider вместо overlap

physics.add.collider толкает тела. physics.add.overlap только сообщает о пересечении. Если монета отталкивает игрока — вы поставили collider. Если игрок проходит сквозь стену без реакции — забыли collider или слой коллизий tilemap.

Для сбора предметов всегда overlap плюс disableBody(true, true). Иначе callback стреляет каждый кадр.

Дважды подписанный callback

Не вешайте collider в update. Это создаёт новую пару каждый кадр. Место одному вызову — create или метод, который вызывается при спавне один раз.

Тело меньше спрайта

Большой спрайт с узким телом выглядит «как в воздухе». Используйте setSize и setOffset под ступни персонажа, особенно на тайлах. Иначе Arcade считает, что вы уже внутри стены.

Гравитация и immovable

Платформы должны быть immovable и без гравитации. Иначе персонаж продавливает пол, а пол улетает вниз. Для групп платформ: group.create + setImmovable(true) сразу после создания.

Короткий чеклист

Отладка тел включена. Collider не в update. Предметы через overlap. Платформы immovable. Размер тела подогнан. Если после этого объект «дрожит», проверьте, не двигаете ли вы x/y вручную в том же кадре, где работает Arcade.