XNA - Farseer Physics 3.5 - Проблемы с обнаружением столкновений - Нет / невесомость - Космическая игра

Итак, я работаю над космической игрой под названием Star Commander.

Прогресс шел замечательно, пока я не решил, что мне нужно реализовать какую-то физику. В основном мне понадобится Farseer Physics для обнаружения столкновений.

В любом случае, поскольку это космическая игра, когда я объявляю свой объект World:

private World world;
this.world = new World(Vector2.Zero);

У меня нет серьезности. Это вызывает странный результат. Я могу столкнуться с объектами, но как только я перестану с ними сталкиваться, все. Я больше не могу столкнуться с ними и просто пройду сквозь них. Однако с гравитацией:

private World world;
this.world = new World(new Vector2(0F, 1F));

Столкновение прекрасно работает.

Я попытался найти помощь с Farseer, но многие сообщения устарели, и нет действительно хороших источников информации, и, к сожалению, я почти уверен, что здесь я тоже не получу помощи, которая мне нужна.

Единственное, что я обнаружил, осматриваясь, - это то, что для объектов с именем «Geoms» мне нужно отключить свойство с именем «CollisionResponeEnabled» или что-то подобное.

Однако объект Geom больше не присутствует в Farseer Physics 3 и был полностью заменен на Fixtures. Однако приспособления, похоже, не обладают этим свойством.

Я могу предоставить любой исходный код, который может помочь, но имейте в виду, что я все еще внедряю физический движок в свой проект, и большая часть кода не является окончательной и беспорядочной.

ВАЖНОЕ ИЗМЕНЕНИЕ:

После записи короткого gif-изображения, демонстрирующего мою проблему, я обнаружил, что могу столкнуться с объектом только один раз, чтобы столкнуться с ним снова, мне нужно столкнуться с другим объектом, но затем я не могу столкнуться с этим объектом, пока не столкнусь с другой объект.

Пример:


person user2932566    schedule 29.10.2013    source источник
comment
Мне кажется, что после столкновения ваши тела могли спать. Вы пробовали выставить SleepingAllowed = false на телах, чтобы посмотреть, в этом ли проблема?   -  person Ani    schedule 29.10.2013
comment
Большое спасибо. ananthonline Я установил для своего плеера значение SleepAllowed = false, и он работал безупречно. Я очень ценю вашу помощь.   -  person user2932566    schedule 29.10.2013
comment
Я добавлю это в качестве ответа, пожалуйста, примите его, чтобы люди, которые придут позже, могли легко его найти.   -  person Ani    schedule 29.10.2013


Ответы (1)


Мне кажется, что после столкновения ваши тела могли «спать». Вы пробовали выставить SleepingAllowed = false на телах, чтобы посмотреть, в этом ли проблема?

person Ani    schedule 29.10.2013