Я использую BodyFactory.CreateCircle для создания шара, который иногда движется быстро. Я хочу, чтобы события OnCollision и OnSeparation запускались немедленно, когда мяч касается другого тела (некоторые тела имеют .IsSenor = true и другие тела .IsSenor = false) и когда мяч больше не касается тела (OnSeparation).
Я читал в этом старом потоке stackoverflow, что вы можете изменить строку public const float AABBExtension в классе Settings.cs из значения От 0,1f до 0,01f:
Физика Farseer: проблемы с обнаружением столкновений
Что произойдет, если я изменю AABBExtension с 0,1f на 0,01f? Поможет ли это ускорить срабатывание событий OnCollision и OnSeparation?
Я изменил значение в Settings.cs:
Код: Выделить всё
///
/// This is used to fatten AABBs in the dynamic tree. This allows proxies
/// to move by a small amount without triggering a tree adjustment.
/// This is in meters.
///
public const float AABBExtension = 0.01f;
Код: Выделить всё
using FarseerPhysics.Dynamics;
bool FarseerWorldPaused = false;
float delta;
World world;
if (world == null)
{
world = new World(new Vector2(0, 7));
}
protected override void Update(xna.GameTime gameTime)
{
delta = (float)gameTime.ElapsedGameTime.TotalSeconds;
if ((FarseerWorldPaused == false) && (world != null))
world.Step(Math.Min(delta, (1f / 60f)));
base.Update(gameTime);
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ameplay-so
Мобильная версия