Я искал решение этой проблемы и наткнулся на вашу ветку на официальном форуме. Вот что я могу почерпнуть, посмотрев официальные сообщения на форуме и исходный код Farseer:
При использовании фабрики кузова параметры ширины / высоты / радиуса предоставляются только для расчета момента его инерции. Сам класс body не имеет полей или свойств ширины / высоты.
Я думаю, что вы ищете, как изменить размер geom, что важно при обнаружении столкновений.
Класс Geom (прямоугольники, круги и еще много чего) не имеет полей или свойств ширины / высоты / радиуса. Вместо этого он определяется набором вершин, поэтому для изменения размера geom нам понадобится возможность изменять вершины. Класс geom имеет открытый метод для этого:
/// <summary>
/// Sets the vertices of the geom.
/// </summary>
/// <param name="vertices">The vertices.</param>
public void SetVertices(Vertices vertices)
{
vertices.ForceCounterClockWiseOrder();
localVertices = new Vertices(vertices);
worldVertices = new Vertices(vertices);
AABB.Update(ref vertices);
}
Для изменения размера нам просто нужно выполнить арифметические операции с вершинами. У меня не было времени, чтобы проверить это самостоятельно, но это должно быть то, с чего мы начнем.